利用ssh隧道让不同子网互联

作者: cikenerd 2017-02-04 14:58:57

假设我们的网络拓扑如下图所示,B能够直连A,B想要直连与A同一子网的其它机器。




 


1.在A上执行


#打开IP转发


$ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward  


 


2.修改A的/etc/ssh/sshd_config文件,允许root登入,允许隧道转发


PermitRootLogin yes  


PermitTunnel yes  


 


3.在B上执行


#通过A创建SSH隧道  


$ sudo ssh -NTCf -w 0:0 1.2.3.4


如果没有错误发生的话,在A和B上执行


$ ip addr show tun0  


会有如下字段


tun0: mtu 1510 qdisc pfifo_fast state UNKNOWN qlen 500


link/none 


 


4.创建点对点通信链路


在A上执行


ip link set tun0 up  


ip addr add 10.0.0.100/32 peer 10.0.0.200 dev tun0


在B上执行


ip link set tun0 up  


ip addr add 10.0.0.200/32 peer 10.0.0.100 dev tun0


此时AB已经能够通过虚拟IP互相ping通了


 


5.添加路由


在B上执行


route add -net 192.168.1.0/24 gw 10.0.0.100


此时B能够直连与A机器同一子网的其它机器了。


 


本文永久更新地址:http://www.linuxdiyf.com/linux/28135.html

相关资讯