하나의 인터페이스를 통해 DHCP 클라이언트 비활성화

하나의 인터페이스를 통해 DHCP 클라이언트 비활성화

두 개의 이더넷 인터페이스(etho 및 eth1)가 있는 서버에서 문제가 발생했습니다. 이 서버는 linux-ubuntu-server를 실행합니다. eth1은 dhcp 요청을 하지 않아야 합니다. 왜냐하면 eth1은 청취 인터페이스로만 필요하기 때문입니다. 분명히 정상적으로 실행되는 eth0이 필요합니다. 그렇다면 eth1을 통해 dhcpclient를 비활성화하려면 어떻게 해야 합니까?

미리 감사드립니다.

답변1

다음과 같은 것 :

auto lo eth0 eth1

iface lo inet loopback

iface eth1 inet static
        address 192.168.32.130
        netmask 255.255.255.0
        gateway 192.168.32.1

구성 파일 에서 고정 IP 주소를 /etc/network/interfaces할당합니다 .eth1

답변2

/etc/network/interfaces올바른 파일이 있어도 dhclient정적 인터페이스에서 계속 IP 주소를 요청하는 경우가 있습니다. /var/lib/dhcp/dhclient.*.leases잘못된 정보가 포함된 오래된 파일이 존재하는 것이 문제일 수 있습니다 . 그냥 kill 하고 dhclient해당 파일을 제거한 다음 새로 시작하십시오( DHCP 인터페이스에서 ifdown/ 수행).ifup

답변3

최신 Linux OS의 경우 Network Manager를 통해 이를 제어할 수 있습니다.

  • RHEL에서: BOOTPROTO=dhcp파일의 줄을 변경합니다./etc/sysconfig/network-scripts/ifcfg-eth1로 변경 BOOTPROTO=static한 다음 네트워크 서비스를 다시 시작하십시오.

  • 데비안: 파일 에서 method=auto행을 다음으로 변경하세요.method=static/etc/NetworkManager/system-connections/유선 연결 1을 누른 다음 네트워크 서비스를 다시 시작하십시오.

답변4

이 인터페이스에 고정 IP를 추가하지 않으려면 DHCP 클라이언트가 할당한 IP를 삭제해야 할 수도 있습니다.

이 스크립트를 실행하면 eth0의 IP가 제거됩니다.

#!/bin/sh
localip=`ip addr list dev eth0 | grep "inet " | sed 's/\(^\s*inet\s\)\([0-9\.]*\)\([\s\/].*\)/\2/'`
if [[$ip != ""]]; then
sudo ip addr del $localip dev eth0
fi

수동으로 실행하거나 crontab에 설정해야 합니다. 아니면 IP를 할당받은 후 호출해 보려고 하는데 어떻게 연결하는지 모르겠습니다. IP 주소가 제거되면 이 인터페이스에서 DHCP 클라이언트가 비활성화된 것처럼 작동합니다.

참고: 이는 지정된 인터페이스에서 DHCP 클라이언트의 영향을 제거하는 해결 방법일 뿐 실제로 비활성화하는 것은 아닙니다. IP 주소가 할당되지 않은 인터페이스가 UP이 필요한 내 솔루션에서 작동합니다.

관련 정보