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