Vì bạn không yêu cầu giải pháp thay thế mà là toàn bộ thông tin cơ bản:
- Kiểm tra những địa chỉ mà bind_host của bạn (tức là "localhost") phân giải thành:
ổ cắm nhập $ python3 -c "
print(set([a[4][0] for a in socket.getaddrinfo('localhost', 4822)]))"
{'127.0.0.1', '::1'}
- Có thể mở một sự cố mới để guacd triển khai hỗ trợ đúng cách cho IPv4/IPv6 ngăn xếp kép và cho phép chỉ định một bind_host có nhiều địa chỉ khác nhau.
Tôi đã sửa lỗi hỗ trợ chỉ IPv6 trong guacd https://issues.Apache.org/jira/browse/GUACAMOLE-1190 đó là đủ cho mục đích của tôi.
Hỗ trợ ngăn xếp kép IPv6 phù hợp trong bất kỳ máy chủ TCP nào, đồng thời cho phép người dùng hạn chế liên kết với các địa chỉ cụ thể có nghĩa là:
- Tạo nhiều ổ cắm
trói buộc()
đến tất cả các địa chỉ được trả về bởi getaddrinfo()
(127.0.0.1 và ::1 cho "máy chủ cục bộ")
nghe()
trên tất cả các ổ cắm được liên kết thành công
- Sử dụng
lựa chọn()
hoặc thăm dò ý kiến()
để phản ứng với các máy khách đến trên tất cả các ổ cắm bị ràng buộc cùng một lúc
- Cuộc gọi
Chấp nhận()
chấp nhận kết nối máy khách sau lựa chọn()
trả về không có lỗi cho một ổ cắm nhất định trong tập hợp
Để tham khảo, hãy xem các câu trả lời/trang web này:
Ngữ nghĩa của :: và 0.0.0.0 trong hệ điều hành ngăn xếp kép
Cách hỗ trợ cả kết nối IPv4 và IPv6
chọn - ghép kênh I/O đồng bộ