다음 오류가 발생합니다.
$ iptables -t mangle -A PREROUTING -d 224.0.0.251 -j TTL --ttl-inc 1
iptables v1.8.7 (nf_tables): unknown option "--ttl-inc"
Try `iptables -h' or 'iptables --help' for more information.
그러나 정의를 man iptables-extensions
볼 때. --ttl-inc
웹에서 검색을 시도했지만 답변을 찾지 못했습니다. 조언해주세요.
$ uname -a
Linux base 6.2.0-26-generic #26-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 10 23:39:54 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 23.04"
NAME="Ubuntu"
VERSION_ID="23.04"
VERSION="23.04 (Lunar Lobster)"
답변1
루트가 아닌 사용자로 재현 가능iptables버전 1.8.7:
$ /sbin/iptables -t mangle -A PREROUTING -d 224.0.0.251 -j TTL --ttl-inc 1
iptables v1.8.7 (nf_tables): unknown option "--ttl-inc"
Try `iptables -h' or 'iptables --help' for more information.
iptables확장 프로그램을 사용하려던 중 문제가 감지되어 실패했지만 제대로 확인되지 않은 경우입니다. 이는 해당 사례에 대한 접근 권한이 부족하여 발생한 것으로 오해의 소지가 있는 메시지가 표시되었습니다. /sbin/iptables -t mangle -A PREROUTING
확장을 사용하지 않고 간단한 가져오기를 사용하세요 iptables v1.8.7 (nf_tables): Could not fetch rule set generation id: Permission denied (you must be root)
.
이 특정 "버그"는 이후 버전에서 수정되었습니다(이는 Ubuntu의 향후 버전에서 사용 가능).
$ /sbin/iptables -t mangle -A PREROUTING -d 224.0.0.251 -j TTL --ttl-inc 1
iptables v1.8.9 (nf_tables): Could not fetch rule set generation id: Permission denied (you must be root)
사람들은 그러한 관리 명령을 루트 사용자로 실행해야 한다는 점을 알고 있어야 합니다. Morover는 iptables
시스템 명령 경로( /sbin
, /usr/sbin
...)에 있으므로 기본적으로 찾을 수 없습니다(OP는 전체 /sbin/iptables
명령을 복사/붙여넣지 않았 /usr/sbin/iptables
거나 PATH
환경 변수를 변경했습니다). 질문의 힌트는 $
신뢰할 만한 가치가 없더라도 여전히 루트가 아님을 의미합니다.
루트(사용 또는 허용)로서 sudo
명령 은 물론 예상대로 작동합니다 su
.unshare -Urn