나는 청취 소켓을 보기 위해 자주 사용합니다 ss -nlptu
. 이 목록에는 일반적으로 ipv4 또는 ipv6 루프백 주소에 바인딩된 몇/12개의 소켓이 포함됩니다. 우리는 바인딩할 유효한 ipv4 루프백 주소가 있다는 것을 알고 있으므로 피할 수 있다면 가장 일반적인 주소를 제외하기 위해 grep과 같은 것을 사용하지 않는 것이 좋습니다.
ss
목록에서 로컬/루프백 수신 대기 포트를 제외하는 방법이 있습니까 ?
답변1
ss
내장된 필터 언어가 있지만 불행히도 매뉴얼 페이지에는 거의 문서화되어 있지 않습니다. 이 문서의 마지막 나머지 부분은 다음 위치에 있습니다.IP 경로 2버전 v4.13.0이며 이 커밋을 통해 제거되었습니다.
문서: 오래된 SS 문서 삭제
현재 버전은 매뉴얼 페이지에 잘 설명되어 있습니다. Latex 문서는 매우 오래되었으며 업데이트되지 않았습니다.
ss.sgml
편집/배포 후에는 파일이 다른 형식으로 나타날 수 있습니다.
예는 다음과 같습니다.
<item>A. Address/port match, where address is checked against mask and port is either wildcard or exact. It is one of: <tscreen><verb> dst prefix:port src prefix:port src unix:STRING src link:protocol:ifindex src nl:channel:pid </verb></tscreen> Both prefix and port may be absent or replaced with <tt/*/, which means wildcard. UNIX socket use more powerful scheme matching to socket names by shell wildcards. Also, prefixes unix: and link: may be omitted, if address family is evident from context (with option <tt/-x/ or with <tt/-f unix/ or with <tt/unix/ keyword) <p>
따라서 루프백 주소를 제외하려면 다음을 수행할 수 있습니다.
ss -nlptu '! src 127.0.0.0/8 and ! src [::1]'
실제로는 IPv6 주소 형식 때문에 따옴표만 필요하지만 일단 따옴표를 사용하면 모든 항목에 따옴표를 붙이는 것이 좋습니다.