내 VPS에는 두 개의 IP가 할당되어 있지만 "ip a"에는 실제 네트워크 인터페이스 eth0과 루프백 인터페이스 lo가 하나만 표시됩니다. 새로운 IP를 반영하도록 복사해서 /etc/sysconfig/network-scripts/ifcfg-eth0
편집 했습니다. /etc/sysconfig/network-scripts/ifcfg-eth1
그러나 systemctl restart network
오류로 인해 실패합니다.Bringing up interface eth1: Error: Connection activation failed: No suitable device found for this connection.
그렇다면 eth1을 설정하기 위해 새 장치를 어떻게 추가합니까? 아니면 다른 실제 네트워크 어댑터를 추가하지 않고는 새 장치를 추가할 수 없습니까? 그렇다면 이 두 IP를 동일한 인터페이스 eth0에 할당할 수 있습니까? 어떻게?
고쳐 쓰다:
@AB의 접근 방식을 따랐지만 여전히 작동하지 않습니다.
TYPE=Ethernet
BOOTPROTO0=none
NAME0=eth0
DEVICE0=eth0
ONBOOT0=yes
PREFIX0=24
IPADDR0=x.x.x.x
NETMASK0=255.255.255.0
GATEWAY0=x.x.x.1
TYPE=Ethernet
BOOTPROTO1=none
NAME1=eth1
DEVICE1=eth1
ONBOOT1=yes
PREFIX1=24
IPADDR1=y.y.y.y
NETMASK1=255.255.255.0
GATEWAY1=y.y.y.1
다음 구성도 작동하지 않습니다.
TYPE=Ethernet
BOOTPROTO0=none
NAME0=eth0
DEVICE0=eth0
ONBOOT0=yes
PREFIX0=24
IPADDR0=x.x.x.x
NETMASK0=255.255.255.0
GATEWAY0=x.x.x.1
TYPE=Ethernet
BOOTPROTO1=none
NAME1=eth0:1
DEVICE1=eth0
ONBOOT1=yes
PREFIX1=24
IPADDR1=y.y.y.y
NETMASK1=255.255.255.0
GATEWAY1=y.y.y.1
명령 은 systemctl restart network
성공했지만 ifconfig
eth0 인터페이스 1개와 lo 인터페이스 1개만 표시됩니다.
고쳐 쓰다:
@AB의 답변에서 올바른 구성을 사용하고 사용하면 ip a
작동합니다! 이 두 IP는 인터페이스 eth0 아래에 표시됩니다.
답변1
이 두 IP 주소는 위에서 구성할 수 있습니다.동일한상호 작용.
이 내용은 다음과 같이 기록됩니다.레드햇 6그러나 RHEL 7 설명서에는 더 이상 나타나지 않습니다. 아마도 이 구성은 단계적으로 폐지되고 있으므로(예: NetworkManager 및 NetworkManager 사용 nmtui
) 덜 빈번한 설정은 더 이상 공식적으로 문서화되지 않습니다. 언제나 그렇듯이 CentOS 6/CentOS 7과 완전히 동일합니다.
IPADDRn=주소
여기서 address는 IPv4 주소이고 n은 0부터 시작하는 연속된 양의 정수여야 합니다(예: IPADDR0). 구성하는 데 사용됩니다.여러 IP 주소하나 상호 작용. 주소가 하나만 구성된 경우에는 생략할 수 있습니다.
스크립트 내용에는 /etc/sysconfig/network-scripts/network-functions
여전히 유효한 구문이 있음이 표시됩니다.
expand_config () { local i=0 val for idx in '' {0..255} ; do ipaddr[$i]=$(eval echo '$'IPADDR$idx) if [ -z "${ipaddr[$i]}" ]; then [ "$idx" ] && [ $idx -ge 2 ] && break continue fi prefix[$i]=$(eval echo '$'PREFIX$idx) netmask[$i]=$(eval echo '$'NETMASK$idx) broadcast[$i]=$(eval echo '$'BROADCAST$idx) arpcheck[$i]=$(eval echo '$'ARPCHECK$idx) arpupdate[$i]=$(eval echo '$'ARPUPDATE$idx)
따라서 플러스 로 /etc/sysconfig/network-scripts/ifcfg-eth0
변경 하고 위 목록의 다른 유사한 설정에 대해 동일한 작업을 수행합니다(예: 를 사용하는 경우 플러스 로 변경 등).IPADDR=
IPADDR0=
IPADDR1=
NETMASK=
NETMASK0=
NETMASK1=
고쳐 쓰다(OP가 구성 콘텐츠를 제공한 후): 유일한 관련 항목위 목록에서다음은 (처음에 사용하는 경우에만) 다음과 같습니다.
PREFIX
NETMASK
BROADCAST
ARPCHECK
ARPUPDATE
다른 것은 없습니다. 특히 다음은 아닙니다.
NAME
오직하나상호 작용. 또한
eth0:1
별칭 주소를 인터페이스(예: )로 사용하는 것은 반드시 피해야 합니다. 이는 다른 설정을 구성할 때 쓸모가 없고 오류가 발생하기 쉬운 오래된 개념입니다. 이 답변에서는 이 문제가 제기되지 않았습니다.GATEWAY
오직하나기본 경로(실제로 인터페이스가 여러 개 있는 경우에도 여기서는 그렇지 않음) 두 개의 서로 다른 독립적인 인터넷 경로를 가질 수 있는 멀티호밍은 다른 짐승이며 같은 질문에 답할 수 없습니다.
결국 ifconfig
이 명령은 사용하면 안 됩니다(이 명령은 오래된 API의 일부이며 호환성 레이블 없이 단일 인터페이스에서 여러 IPv4 주소를 올바르게 표시하지 않습니다). 대신 다음을 사용하십시오.
ip address
또는 ip -br address
호스트 인터페이스에 구성된 주소를 표시합니다. 마찬가지로 Linux에서 경로를 표시하는 가장 좋은 명령은 다음과 같습니다.
ip route
바꾸다 route
.
최종 구성은 ifcfg-eth0
다음과 같아야 합니다.
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
PREFIX0=24
IPADDR0=x.x.x.x
NETMASK0=255.255.255.0
PREFIX1=24
IPADDR1=y.y.y.y
NETMASK1=255.255.255.0
GATEWAY=x.x.x.1
호스팅 공급자가 자세한 라우팅 문서를 제공하지 않는 한 동일한 게이트웨이 xxx1이 결국 yyyy 주소를 라우팅하는 데 사용됩니다. 이 경우 구성이 더 이상 ifcfg-eth0
마스터하기가 매우 어렵기 때문에 어쨌든 별도의 질문이 필요합니다. 두 번째 주소의 접두사/넷마스크 PREFIX1이 24가 아닌 32(및 중복 NETMASK1, 255.255.255.255)일 수도 있지만 이는 호스팅 공급자의 문서 없이는 알 수 없으며 아마도 중요하지 않습니다.