Lorsque je me logge sur ma session, je ne peux me connecter à internet.
Mais il suffit que je fasse dhclient sous root dans un terminal pour que ça fonctionne.
Quelqu’un sait-il la raison de cela et comment l’automatiser ?
Lorsque je me logge sur ma session, je ne peux me connecter à internet.
Mais il suffit que je fasse dhclient sous root dans un terminal pour que ça fonctionne.
Quelqu’un sait-il la raison de cela et comment l’automatiser ?
Hello,
Fichier /etc/network/interface :
Tu devrais avoir cette configuration, en principe :
iface eth0 inet dhcp
A quoi ressemble ton fichier “interface” pour l’instant ?
Chris
voici mon fichier /etc/network/interfaces.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
iface eth1 inet dhcp
Et voici le résultat de ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:10:dc:e4:75:cf
inet adr:192.168.0.14 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: fe80::210:dcff:fee4:75cf/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:393 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:184675 (180.3 KiB) TX bytes:56343 (55.0 KiB)
Interruption:19 Adresse de base:0xec00
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:229 errors:0 dropped:0 overruns:0 frame:0
TX packets:229 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:38976 (38.0 KiB) TX bytes:38976 (38.0 KiB)
Et enfin ce que donne la commande netstat -nr
Table de routage IP du noyau
Destination Passerelle Genmask Indic MSS Fenêtre irtt Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth1
La dernière ligne qui permet l’accès à internet est créée après avoir exécuté dhclient (sous root).
J’aimerais comprendre pourquoi cette ligne n’est pas présente automatiquement !
Hello,
Vu que ton dhcp est configuré et que l’appel de la commande dhclient fonctionne, on doit en conclure que la configuration est la bonne. Cela dit, si tu fais un runlevel, tu obtiens quel résultat ?
(disons que tu obtiens un N 2 par exemple), tu peux lancer un :
ls /etc/rc2.d
ls /etc/rcS.d
En remplaçant le “2” par le résultat de ton runlevel, bien sûr (N 3 => rc3.d … par exemple).
Je voudrais savoir si le networking start bien au boot en fait.
Bonjour SONADOR,
Voici le résultat de la commande ls /etc/rc2.d
K77ntp-server S20hddtemp S30gdm
README S20hotkey-setup S30system-tools-backends
S10sysklogd S20netatalk S43portmap
S11klogd S20nfs-common S50rsync
S12acpid S20nfs-kernel-server S70bootlogs
S12dbus S20openbsd-inetd S89anacron
S14avahi-daemon S20policycoreutils S89atd
S19postgresql S20samba S89cron
S19postgresql-8.1 S20winbind S99rc.local
S19spamassassin S24dhcdbd S99rmnologin
S20bittorrent S24hal S99stop-bootlogd
S20cups S26network-manager S99timidity
S20exim4 S26network-manager-dispatcher
Et celui de la commande ls /etc/rcS.d
README S20module-init-tools S44nfs-common
S02hostname.sh S25libdevmapper1.02 S45mountnfs.sh
S02mountkernfs.sh S30checkfs.sh S46mountnfs-bootclean.sh
S03udev S30procps S47lm-sensors
S04mountdevsubfs.sh S35mountall.sh S48console-screen.sh
S05bootlogd S36discover S50alsa-utils
S05keymap.sh S36mountall-bootclean.sh S55bootmisc.sh
S08hwclockfirst.sh S36udev-mtab S55urandom
S10checkroot.sh S37mountoverflowtmp S70x11-common
S11hwclock.sh S39ifupdown S75sudo
S12mtab.sh S40networking S99stop-bootlogd-single
S18ifupdown-clean S43portmap
Là, je ne sais pas comment voir ça !
[quote=“enicnath”]
S12mtab.sh S40networking S99stop-bootlogd-single
S18ifupdown-clean S43portmap
[/code]
Là, je ne sais pas comment voir ça ![/quote]
Ben apparemment, c’est bon de ce côté.
J’envisage donc d’automatiser l’exécution de dhclient au démarrage de ma machine, juste avant que les utilisateurs puissent se connecter.
En consultant les forums, j’ai vu qu’il serait possible de faire de la façon suivante :
[ul]
Si j’ai bien compris, cette suite de commande permet l’exécution du fichier de script /etc/init.d/local après la plupart des autres services en raison de la priorité 90 qui lui est donnée. Celle-ci lance la commande dhclient, puisque c’est la seule commande figurant dans le script.
Remarque :
Je n’ai pas mis la ligne du shebang (#!/bin/sh) dans le script parce que je ne demande pas de shell particulier. Peut-être le faut-il néanmoins?
C’est un peu compliqué mais bon. Je suis preneur de toute méthode plus simple !
Solution intéressante… je ne sais pas moi-même s’il y a mieux, car par habitude j’utilise des ip fixes… Mais c’est tout à fait fonctionnel sur le principe.
Quelques précisions d’abord : pour connaitre ton level de démarrage, tu peux regarder dans ton fichier d’inittab (ligne “id:ton_level:initdefault”). Ou, plus rapidement, tu tapes la commande “runlevel”. Tu auras une réponse type “N 1”, “N 2” ou autre chose, suivant ta configuration. Personnellement je boote en N 2. Ton fichier d’inittab décrit à quoi correspond les différent niveau. Si tu obtiens un N 2, dans ce cas, tu regardes ce qui boote en /etc/rc2.d. Si tu es en 3, alors tu vois ce qui se passe en /etc/rc3.d, etc. Je te dis ça parce que tu as vérifié le N 2, mais je ne sais pas si vraiment tu es en level 2 (peut-être que oui, bien sûr ). PS. Le “N” veut dire que tu n’as pas changé de niveau d’exécution (note en passant que j’ignorais ce détail jusqu’à ce soir :p)
Ensuite, le /etc/rcS.d listent les services qui démarreront quelque soit ton runlevel.
Par rapport à ta solution, maintenant… Donc, oui, ça parait faisable, même si, pour être franc, je n’ai jamais essayé ça. Il faudrait par contre deux choses. Primo, les fichiers de scripts situés dans le /etc/init.d et destinés à être utilisé au boot dans les rc.d comportent un en-tête spécifique que tu dois ajouter.
Exemple :
#! /bin/sh
Il faudra que tu crées un entête, sinon ton update-rc.d criera au scandale (une point que tu devrais garder en mémoire, car c’est utile).
Dans ton script - puisqu’il s’agit d’un script, même s’il ne contient qu’une commande, tu devrais noter tout le path. Simple prudence. Pour connaitre le chemin complet, tu fais un “whereis dhclient”. En principe, tu le trouveras dans /sbin/dhclient. Au lieu de taper “dhclient”, tu devras donc indiquer /sbin/dhclient (après, tu fais comme tu veux, bien sûr).
/sbin/dhclient
Et enfin, il faudra donc créer le fichier avec des droits en 755, propriétaire et groupe : root.
root@debian-1:/etc/init.d# ls -l local
-rwxr-xr-x 1 root root 281 8 avril 01:30 local
Cordialement,
Christian
Ok, j’ai fait comme tu m’as dit
#! /bin/sh
### BEGIN INIT INFO
# Provides: ssh
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: OpenBSD Secure Shell server
### END INIT INFO
/sbin/dhclient
remarque : je n’ai rien modifié entre BEGIN INIT INFO et END INIT INFO. Ca fera l’objet de recherches ultérieures
Je lui ai mis les droits 755.
J’ai exécuté par update-rc.d local defaults 90
Le résultat est ci-dessous :
update-rc.d: warning: local stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (none)
Adding system startup for /etc/init.d/local ...
/etc/rc0.d/K90local -> ../init.d/local
/etc/rc1.d/K90local -> ../init.d/local
/etc/rc6.d/K90local -> ../init.d/local
/etc/rc2.d/S90local -> ../init.d/local
/etc/rc3.d/S90local -> ../init.d/local
/etc/rc4.d/S90local -> ../init.d/local
/etc/rc5.d/S90local -> ../init.d/local
En listant le contenu de /etc/rc2.d, on retrouve désormais S90local
Hello,
ok bon,
“Provides: ssh” => par contre c’est pas ssh mdr
Mais c’est bien, tu avances, c’est le principal
Damned !
Comme tu dis j’avance, mais ne suis pas encore arrivé.
Je viens donc de relancer mais j’ai toujours le même problème ; il m’a fallu relancer manuellement dhclient sous root.
Y a t’il un moyen de tester si un script lancer par /etc/rc2.d s’est bien exécuté ?
Bon, à demain. Je vais me coucher !