Tôi đang tự hỏi làm thế nào để đường hầm lưu lượng tcp / ipv6 qua đường hầm ssh / ipv4 (kết nối ptp). Có thể không? Làm thế nào tôi có thể đạt được điều đó?
Tôi đang tự hỏi làm thế nào để đường hầm lưu lượng tcp / ipv6 qua đường hầm ssh / ipv4 (kết nối ptp). Có thể không? Làm thế nào tôi có thể đạt được điều đó?
Câu trả lời:
Có, có thể và không quá khó, nhưng giải pháp rất tối ưu, vì SSH chạy trên TCP và có chi phí hợp lý.
Máy chủ phải có trong tệp cấu hình của nó sshd_config
:
PermitTunnel point-to-point
Sau đó, bạn cần phải root trên cả hai máy. Bạn kết nối với máy chủ bằng cách sử dụng:
ssh -w any root@server
Sau khi kết nối, sử dụng lệnh ip link
trong cả hai hệ thống để biết thiết bị tunN nào được tạo trong mỗi thiết bị và sử dụng nó trong các lệnh sau. Lưu ý rằng tôi đang sử dụng ví dụ địa chỉ trang web cục bộ, đã lỗi thời, nhưng ok cho phần giới thiệu này.
Trên máy chủ:
server# ip link set tun0 up
server# ip addr add fec0:1::1/112 dev tun0
Trên máy khách:
client# ip link set tun0 up
client# ip addr add fec0:1::2/112 dev tun0
Điều này là đủ để bạn có thể ping phía bên kia qua đường hầm, nếu không có quy tắc chặn tường lửa. Bước tiếp theo là đặt các tuyến qua đường hầm (đừng quên net.ipv6.conf.default.forwarding = 1), sau đó điều chỉnh MTU liên kết để có hiệu suất tối ưu.
server# sysctl net.ipv6.conf.all.forwarding=1
client# ip -6 route add default via fec0:1::1
Điều này sẽ cho phép khách hàng của bạn ping các mạng khác mà máy chủ có quyền truy cập, với điều kiện là các mục tiêu có tuyến trở lại máy khách từ xa của bạn.
Bạn cũng sẽ phải sửa MTU liên kết để máy khách không gửi các gói mà máy chủ không thể truyền được. Điều này phụ thuộc vào MTU của liên kết IPv6 của chính máy chủ. Không dựa vào khám phá đường dẫn MTU vì nó sẽ không hoạt động chính xác qua đường hầm SSH. Nếu nghi ngờ, hãy bắt đầu với giá trị MTU thấp, như 1280 (MTU tối thiểu được phép cho IPv6).
ip
lệnh, vì vậy hãy đặt địa chỉ IP sudo ifconfig tun0 inet6 fec0:1::2/112 up
và đặt tuyến đường với sudo route add -inet6 -mtu 1280 default fec0:1::1