SSH üzerinden yeniden başlatmadan ağ nasıl başarılı bir şekilde yeniden başlatılır?

92

Ubuntu 14.04'te ne sudo service networking restart ne de sudo /etc/init.d/networking restart artık bir şey yapmıyor. Ayrıca ikisi de kod 1 ile çıkarlar. Bir şey açıkça değişti (veya yarı değişti) ama ne olduğunu bulamıyorum. Bu açıkça uzak ağ yeniden yapılandırma ve Ansible gibi araçlar ile ilgili sorunlara neden olur.

$ sudo bash -x /usr/sbin/service networking restart
[sudo] password for wirehive:
++ basename /usr/sbin/service
+ VERSION='service ver. 0.91-ubuntu1'
++ basename /usr/sbin/service
+ USAGE='Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]'
+ SERVICE=
+ ACTION=
+ SERVICEDIR=/etc/init.d
+ OPTIONS=
+ '[' 2 -eq 0 ']'
+ cd /
+ '[' 2 -gt 0 ']'
+ case "" in
+ '[' -z '' -a 2 -eq 1 -a networking = --status-all ']'
+ '[' 2 -eq 2 -a restart = --full-restart ']'
+ '[' -z '' ']'
+ SERVICE=networking
+ shift
+ '[' 1 -gt 0 ']'
+ case "" in
+ '[' -z networking -a 1 -eq 1 -a restart = --status-all ']'
+ '[' 1 -eq 2 -a '' = --full-restart ']'
+ '[' -z networking ']'
+ '[' -z '' ']'
+ ACTION=restart
+ shift
+ '[' 0 -gt 0 ']'
+ '[' -r /etc/init/networking.conf ']'
+ which initctl
+ grep -q upstart
+ initctl version
+ case "${ACTION}" in
+ stop networking
stop: Job failed while stopping
+ :
+ exec start networking
start: Job is already running: networking

Ubuntu 14.04 Sunucusu'nda ağ bağlantısını yeniden başlatmanın doğru yolu nedir?

    
sordu SimonJGreen 31.03.2014 20:27

5 cevap

117

Bu, bir "özellik" olduğunu ortaya çıkarır. Ubuntu Sunucusundaki bir arabirimi yalnızca destekleme yolu sudo ifdown eth0 && sudo ifup eth0

İşte

    
verilen cevap SimonJGreen 02.04.2014 13:03
71

ifdown, ifup benim için çalışmadı (muhtemelen ikinci komuttan önce SSH bağlantısı zaman aşımı). Çalışma neydi:

sudo service network-manager restart

Bu 14.04 ubuntu masaüstü sistemindeydi.

    
verilen cevap dpb 21.04.2014 04:25
6

Değişen şey, artık ağı "zıplatmak" istemiyorlar. durmak ve başlamak, hala çalışmak. Yeniden başlatma artık çalışmıyor. Ben sadece bu "problemi" çözdüm, yani eski davranışı geri aldım. Önceki davranışa dönmek için: 13.10 / etc / info / networkworking.conf dosyasını alın ve 14.04 dosyasını onunla değiştirin. (düzenle: hangisi değiştirir?)

İşlem şu şekilde görünüyor:

(Just before this, I configured my /etc/network/interfaces for eth1 on a 192.168.117.x address)

"/etc/network/interfaces" 16L, 413C written  
[email protected]:~# service networking restart  
stop: Job failed while stopping  
start: Job is already running: networking  
[email protected]:~# echo "hmm, wth?"
hmm, wth?
[email protected]:~# ifconfig  
eth0      Link encap:Ethernet  HWaddr 00:0c:29:d6:a8:19  
          inet addr:192.168.115.105  Bcast:192.168.115.255  Mask:255.255.255.0  
          inet6 addr: 2002:4077:9050:1234:a08c:29c1:ce9b:a57b/64 Scope:Global  
          inet6 addr: fe80::20c:29ff:fed6:a819/64 Scope:Link  
          inet6 addr: 2002:4077:9050:1234:20c:29ff:fed6:a819/64 Scope:Global  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:646 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:531 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:58748 (58.7 KB)  TX bytes:75465 (75.4 KB)  
(lo removed here)  
[email protected]:~# cd /etc/init
[email protected]:/etc/init# diff networking.conf.1310 networking.conf.1404  
13c13  
<       and (stopped udevtrigger or container)) or runlevel [2345]  
---  
>     and (stopped udevtrigger or container)) or runlevel [2345] or stopped  networking   >RESULT=failed PROCESS=post-stop EXIT_STATUS=100  
16a17,20  
>     if [ "$UPSTART_EVENTS" = "stopped" ] && [ "$UPSTART_JOB" = "networking" ] && [ "$EXIT_STATUS" = "100" ]; then  
>         exit 0  
>     fi  
>  
21a26,31  
>     if [ -z "$UPSTART_STOP_EVENTS" ]; then  
>        echo "Stopping or restarting the networking job is not supported."  
>         echo "Use ifdown & ifup to reconfigure desired interface."  
>         exit 100  
>     fi  
[email protected]:/etc/init#  

/etc/init/networking.conf dosyasının referansları / çağrıları olan /etc/init.d/networking betiği için de aynısını yapın.

[email protected]:/etc/init# cp networking.conf.1310 networking.conf  
[email protected]:/etc/init# cd ../init.d  
[email protected]:/etc/init.d# diff networking.1404 networking.1310  
15d14  
< STATEDIR="$RUN_DIR/state"
21a21,27
> # Make sure that it's clear to the user that they shouldn't use this
> # script under upstart
> if init_is_upstart; then
>       echo "ERROR: Calling a sysvinit script on a system using upstart isn't supported. Please use the 'service' command instead."  
>       exit 1
> fi
>
52,54d57
<       if ! chown root:netdev "$RUN_DIR" ; then
<           log_warning_msg "can't chown $RUN_DIR"
<       fi
160,162d162
<       if init_is_upstart; then
<               exit 1
<       fi
166c166
<       state=$(ifquery --state)
---
>       state=$(cat /run/network/ifstate)
[email protected]:/etc/init.d# cp networking.1310 networking
[email protected]:/etc/init.d# service networking restart
networking stop/waiting
networking start/running
[email protected]:/etc/init.d# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:d6:a8:19
          inet addr:192.168.115.105  Bcast:192.168.115.255  Mask:255.255.255.0
          inet6 addr: 2002:4077:9050:1234:a08c:29c1:ce9b:a57b/64 Scope:Global
          inet6 addr: fe80::20c:29ff:fed6:a819/64 Scope:Link
          inet6 addr: 2002:4077:9050:1234:20c:29ff:fed6:a819/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3398 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2545 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:318654 (318.6 KB)  TX bytes:418804 (418.8 KB)

eth1      Link encap:Ethernet  HWaddr 00:0c:29:d6:a8:23
          inet addr:192.168.117.105  Bcast:192.168.117.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed6:a823/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:98 errors:0 dropped:58 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:20055 (20.0 KB)  TX bytes:1226 (1.2 KB)
(lo removed)
[email protected]:/etc/init.d# echo "hah, it works! *8^)"
Hah, it works! *8^)
[email protected]:/etc/init.d#

(note: the steps where I scp'd the 1310 versions into the 1404 system are omitted for brevity). 

Açıkçası, oraya defansif bir çıkış yapmaları için bir sebep var, ama gerçekten neler olup bittiğini çıkarmaya zahmet etmiyorlar.

Denediğinizde, /var/log/upstart/networking.log dosyasına bir giriş yapılır:

Stopping or restarting the networking job is not supported.  
Use ifdown & ifup to reconfigure desired interface.  

Ancak, hizmet ağını yeniden başlatmayı denediğinizde iletişim kutusundaki mesajın gerçekten çıktısını alabilirler. ah iyi. Bunu anladım ve hatta eski bir çalışma.

DÜZENLEME: Bu, /etc/init/failsafe.conf tarafından kontrol edilen komut dosyasının istem dışı bir şekilde tetiklenmesine neden oldu. Bu, her açılışta 120 saniyelik bir zaman aşımı gecikmesine neden olduğu için istenmeyen bir durumdur. Bu gecikmenin görünümünün göstereceği yanlış yapılandırmalar / ağ sorunları, ancak her zaman zaten gösteriliyor. (ör. / etc / fstab dosyasında eşlenen bir ağ dosya paylaşımına erişime izin veren fişsiz bir kablo, örneğin)

Her durumda, her zaman zaman aşımına neden olan şeyin ne olduğunu anlayacağım ve bulduğumda bir düzeltme göndereceğim.

    
verilen cevap kvm-user420 18.04.2014 18:56
3

kvm-user420'nin yanıtına atıfta bulunarak, Ubuntu 14.04'ün ağ komut dosyalarını Ubuntu 13.10 ile değiştirmek için bir senaryo hazırladım ve

Burada bulabilirsiniz: İşte

tadını çıkarın!

    
verilen cevap metral 18.04.2014 22:23
0

Bu komut dosyasıyla ilgili sorunu çözüyorum: lütfen bu betiği "/etc/network/if-down.d" adresinden ekleyin

cd /etc/network/if-down.d
vim ifdown

içerik:

#!/bin/bash 

for I in /sys/class/net/* 
do
        ifname=$(basename $I) 
        if [ $ifname != "lo" ] ; then 
                ip addr flush $ifname
        fi
done

ve sonunda:

chmod +x ifdown

şimdi ip adresini değiştirebilir ve sistem hizmetini veya hizmet komutunu kullanarak ağ hizmetini yeniden başlatabilirsiniz.
NOT : bu komut çok basit ve TUTMAYIN vm, , köprü, ... arayüzler. aslında tüm arayüzleri lo (loopback) hariç tut.

    
verilen cevap mah454 24.09.2017 09:43

Etiketlerdeki diğer soruları oku