Debian:无法关闭 eth0

Debian:无法关闭 eth0

我的 Debian 7 / Apache 2.2 出现了一个问题

我无法关闭我的接口 eth0(服务器超时,我需要重新启动它)

当我进行 strace 操作时,我看到一个 SIGCHILD :

strace -e open ifdown eth0
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3
open("/etc/network/interfaces", O_RDONLY) = 3
open("/run/network/ifstate", O_RDWR|O_CREAT|O_APPEND, 0666) = 3
open("/run/network/ifstate", O_RDWR|O_CREAT|O_APPEND, 0666) = 3
open("/run/network/.ifstate.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
open("/run/network/ifdown-eth0.pid", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
open("/run/network/ifup-eth0.pid", O_RDONLY) = -1 ENOENT (No such file or directory)
--- SIGCHLD (Child exited) @ 0 (0) ---

我的 ifconfig:

eth0      Link encap:Ethernet  HWaddr 02:00:97:50:85:77  
      inet adr:151.80.133.119  Bcast:151.80.133.255  Masque:255.255.255.0
      adr inet6: fe80::97ff:fe50:8577/64 Scope:Lien
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:7887 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3127 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:1000 
      RX bytes:682530 (666.5 KiB)  TX bytes:260205 (254.1 KiB)

eth0:0    Link encap:Ethernet  HWaddr 02:00:97:50:85:77  
      inet adr:37.187.234.165  Bcast:37.187.234.165  Masque:255.255.255.255
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:1    Link encap:Ethernet  HWaddr 02:00:97:50:85:77  
      inet adr:37.187.234.166  Bcast:37.187.234.166  Masque:255.255.255.255
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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:65536  Metric:1
      RX packets:6 errors:0 dropped:0 overruns:0 frame:0
      TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:0 
      RX bytes:300 (300.0 B)  TX bytes:300 (300.0 B)

我的 etc/network/interfaces 文件:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
    address 151.80.133.119
    netmask 255.255.255.0
    gateway 151.80.133.254
post-up /sbin/ifconfig eth0:0 37.187.234.165 netmask 255.255.255.255 broadcast 37.187.234.165
post-down /sbin/ifconfig eth0:0 down

当我重新启动服务器时,我遇到了另一个奇怪的问题,我总是遇到:

(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.

所以我需要:netstat -ltnp | grep ':80' 并终止该进程。

我认为这些问题是相关的...但我不知道该怎么办。

有人有想法吗?谢谢

答案1

我无法关闭我的接口 eth0(服务器超时,我需要重新启动它)

关闭一个接口将会完全禁用它,包括任何子接口(例如eth0:0eth0:1您的服务器上的) - 就像您将网线从机器中拔出一样。ifdown正在正确地执行其工作,但您无法看到它完成,因为服务器不再与您通信!

不要ifdown在用于连接机器的接口上运行。

答案2

运行时,netstat -ltnp | grep ':80'它应该会显示该端口上运行的进程。找出该进程是什么,然后删除在启动时初始化它的进程。

或者在 Apache 中,您是否配置了多个监听指令来绑定到同一个端口?grep Listen /etc/apache2/ports.conf——应该只列出一个端口 80。

答案3

这只是猜测,但您可能正在尝试运行 nginx 和 apache。我怀疑是 nginx,因为我看到 eth0 上有两个虚拟端口和 IP。此外,您收到的有关已使用端口 80 的错误也指向这一点。

如果是这种情况,请禁用或卸载其中一个。

相关内容