Tại sao SSH hiển thị giao thức là tcp6 * và * tcp trong netstat?


8
$ netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN  

Tại sao có hai bản ghi của cổng 22 ( :::220.0.0.0:22) và tại sao một bản ghi sử dụng giao thức như tcpvà bản kiatcp6

Đây là trên Ubuntu 12.04.4


6
Chà, vì SSH đang lắng nghe các địa chỉ ký tự đại diện của cả IPv4 và IPv6 nên bạn có thể tiếp cận trình nền SSH của mình thông qua cả IPv4 và IPv6.
Andreas Wiese

Câu trả lời:


8

Theo mặc định sshdsử dụng ipv4 và ipv6. Bạn có thể cấu hình giao thức sshd sử dụng thông qua lệnh AddressFamilytrong/etc/ssh/sshd_config

Đối với ipv4 & ipv6 (mặc định)

AddressFamily any

Chỉ dành cho ipv4

AddressFamily inet

Chỉ dành cho ipv6

AddressFamily inet6

Sau khi bạn thực hiện bất kỳ thay đổi nào để sshd_configkhởi động lại sshdđể những thay đổi có hiệu lực.


6

Trên thực tế, nó thú vị hơn một chút

Về cơ bản, ngay cả khi bạn tắt hoàn toàn IPv6, một số ổ cắm sẽ được xác định là "TCP6 / UDP6" vì lý do nhân tò mò.

Tôi nhận thấy nó sau khi tôi chạy netstat trên điện thoại Android được kết nối với mạng 3G mà không cần hỗ trợ IPv6 (bị vô hiệu hóa trong cài đặt APN và rõ ràng không được nhà mạng hỗ trợ)

Sau khi tôi thấy các kết nối TCP6 của WhatsApp bằng cách nào đó vẫn tồn tại, tôi bắt đầu nghiên cứu và tìm thấy liên kết này: https://blog.codecentric.de/en/2014/04/note-netstat/


0

Chỉ có thể liên kết ::và nói chuyện cả IPv4 và IPv6. Tôi đã tự hỏi tại sao một số ứng dụng, bao gồm openssh, không tận dụng lợi thế này.

Đây phần về IPv6 trong cuốn sổ tay các nhà phát triển FreeBSD có một số lời bình luận thú vị mà có thể liên quan:

Có vẻ như RFC2553 nói quá ít về vấn đề liên kết ký tự đại diện, đặc biệt là về vấn đề không gian cổng, chế độ thất bại và mối quan hệ giữa liên kết ký tự đại diện AF_INET / INET6. Có thể có một vài cách hiểu riêng cho RFC này phù hợp với nó nhưng hành xử khác nhau. Vì vậy, để thực hiện ứng dụng di động, bạn không nên thừa nhận gì về hành vi trong kernel. Sử dụng getaddrinfo (3) là cách an toàn nhất. Các vấn đề liên kết không gian số cổng và ký tự đại diện đã được thảo luận chi tiết về danh sách gửi thư ipv6imp, vào giữa tháng 3 năm 1999 và có vẻ như không có sự đồng thuận cụ thể (có nghĩa là, cho người thực hiện). Bạn có thể muốn kiểm tra lưu trữ danh sách gửi thư.

Chúng tôi cũng có thể suy đoán rằng hành vi mặc định này được xác định khi một số lượng đáng kể các hệ thống không có hỗ trợ IPv6.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.