iptables는 127.0.0.1 대신 localhost 이름을 사용할 때 중복 규칙을 삽입합니다.

iptables는 127.0.0.1 대신 localhost 이름을 사용할 때 중복 규칙을 삽입합니다.

INPUT 체인에 규칙을 삽입하면 두 번 복사됩니다(즉, 원래 규칙과 함께 3개의 동일한 복사본이 있음). 주어진 명령은 다음과 같습니다./sbin/iptables -w -I INPUT 20 -m comment -p tcp -s localhost -d localhost --comment 'TEST' -j LOG

이 동작은 CentOS 시스템( Linux version 3.10.0-1127.8.2.el7.x86_64), Ubuntu 시스템(Linux 버전 5.6.1-x86) 및 원래 Debian 시스템( Linux version 4.19.0-9-amd64)에서 발생합니다.

그러나 다음 localhost으로 바꾸면 127.0.0.1이런 일이 발생하지 않습니다 ( localhost값을 해당 주소로 바꾸면 중복만 생성됩니다). -n에 매개변수를 전달하려고 하면 iptables아이러니하게도 insert() 와 함께 옵션을 사용할 수 없다는 메시지가 나타납니다 Illegal option '-n' with this command. 그러나 strace그것이 무엇에 사용되는지 확인하기 위해 실행하면 분명히 열립니다 iptables( 그러나 IP 주소가 아닌 값 /etc/resolv.conf으로 사용할 때만 ).localhost

이것은 의도적으로 설계된 것입니까?

고쳐 쓰다:/etc/hostslocalhost 및에 포함된 내용은 다음과 같습니다 127.0.0.1.

127.0.0.1       localhost                                 
127.0.1.1       ubuntu.nodes.hosting.com       ubuntu    
...                                                          
::1     localhost ip6-localhost ip6-loopback              

업데이트 2:@9000 님의 댓글 덕분에 호스트 파일을 살펴보았습니다. /etc/hosts다음 줄을 포함하고 다른 참조는 없는 파일이 주어지면 localhost...

127.0.0.1   localhost 
::1         localhost

localhost...두 번째 줄( 이름을 IPv6 주소와 연결하는 줄 ::1)과 이 명령을 주석 처리합니다 .

/sbin/iptables -w -I INPUT 20 -m comment -p tcp -s localhost -d localhost --comment 'TEST' -j LOG

...단일 규칙만 생성합니다.

/sbin/iptablesIPv6 주소가 구문 분석되거나 대신 호출할 때 동작에 영향을 미치는 이유는 무엇입니까 /sbin/ip6tables? 둘 다 에 연결되어 있습니다 xtables-multi. 사용자가 원하는 버전은 확인되지 않은 것 같습니다. 또한 삽입된 중복 규칙은 IP 버전에 따라 다르지 않습니다. 모두 IPv4 주소를 사용하여 소스와 대상을 나타냅니다.

관련 정보