linux怎样建立隧道使

linux怎样建立隧道使,第1张

Win上有好用的Xshell,可以做SSH隧道,但是Linux没有很好用的工具,本来gSTM还可以,但是死活装不上,也很久没更新了。

但其实,Linux上直接使用ssh命令就可以创建SSH隧道,非常方便。

1

ssh -L 9000:localhost:5432 user@example.com

-L 后的含义是: -L local-port:host:remote-port,最后面是远程服务器的登录用户名和IP地址。

敲入命令后,提示输入密码,即可创建隧道:通过本机的localhost:9000可以访问远程服务器上的localhost:5432。

此外,还有一些类似的命令:

1

ssh -f user@example.com -L 9000:localhost:5432 -N

这里的-f可以强制使ssh连接在后台保持运行,-N则告诉openSSH不需要在远程服务器上执行任何命令。

方法一:基于SSHde加密通道

SSH(SecureShell)是一套安全de网络连接程序,它可以实现通过网络远程登录其他系统,它就是加密detelnet协议。但是OPENSSH除了具you远程登录功能以外,更可以建立加密IP隧道。

 

wo men 这里假设Alice.org服务器位于某个企业网de内网,其IP地址为192.168.2.200,它通过NAT方式可以访问互联网。wo men 现在需要通过位于互联网上de名字为bob.orgde机器里访问Alice,也就是远程登录Alice。这时候wo men 就需要在bob和alice之间建立IP隧道。wo men 首先登录Alice,执行命令:

#ssh-R11022:127.0.0.1:22 ideal@211.1.1.1

该命令表示登录服务器211.1.1.1,并将服务器de11022定向为本地de22号端口。执行完该命令以后,会提示输入ideal用户密码,输入以后就会登录到远程服务器bob。这时在bob上netstat-ln就会发现11022端口监听,保持从alice到bobdessh连接不断开。从互联网任何位置登录服务器bob以后,wo men 可以通过该隧道登录到alice服务器,执行以下命令:

#sshlocalhost-p11022

该命令表示连接本地de11022端口,因为wo men 已经创建了从alice到bobde隧道,因此连接本地de11022端口实际上就是通过隧道访问alicede22端口号。

这样通过这个隧道就可以实现登录位于内部网de服务器alice,但是因为ssh命令中指定了源端口,这种隧道一般只能支持一种协议,对于特定应用则具you加密带来de安全性de优点,但灵活性则不够,而且为了保证隧道畅通,从alice到bobdessh连接不能断开,也就意味着用户不能退出alice,否则隧道就会关闭。

方法二:使用vtun建立IP隧道

VTun(VirtualTUNnel,http://vtun.sourceforge.net)是一个功能很强de软件,可以利用它来建立IP虚拟隧道,而且隧道de数目可以不受限制,完全依照机器de能力而定,并且在此基础上应用上可以实现VPN、移动IP等功能。

Vtun所支持de通道并且具you多种功能特性:

* 加密:支持基于CHAPde认证、并采用BlowFish128bit密钥。

* 压缩:支持zlib、lzo等多种压缩算法。

* 通信整形:平台无关,允许分别限制进入和流出通道de速率。

Vtun支持以下类型通道:

* IPtunnel(tun):支持pppdeIP隧道。

* 以太网隧道(Ethernettunnel):支持可以实现以太网封装de各种协议,如:IPX、Appletalk、Bridge等。

* 串口通道(Serialtunnel,tty):支持串行电缆de传输方式,如:PPP、SLIP等。

* 管道通道(Pipetunnel,pipe):支持所you能使用Unix管道de程序。

Vtun支持多种平台,包括:Linux、BSD以及Solaris。

当服务器迁移,因为DNS未同步或某些人使用ip访问,一些流量还是会流向老的服务器。 使用iptables及其伪装特性,将所有流量转发到老的服务器。 点击看iptables的介绍 。 本文假设没有运行的iptables,至少没有针对prerouting链和postrouting链的NAT表的转发规则。1) 首先开启端口转发 # echo "1" >/proc/sys/net/ipv4/ip_forward 或sysctl net.ipv4.ip_forward=12) 增加端口转发 将端口1111上的流量转发到主机2.2.2.2 上的端口1111。# iptables -t nat -A PREROUTING -p tcp        --dport 1111 -j DNAT --to-destination  2.2.2.2:1111然后告诉IPtables伪装起来(masquerade)# iptables -t nat -A POSTROUTING -j  MASQUERADE仅仅重定向一个固定网络甚至是一台主机的流量 # iptables -t nat -A PREROUTING -s  192.168.1.1 -p tcp --dport 1111 -j DNAT        --to-destination 2.2.2.2:1111仅仅重定向一个网段的流量# iptables -t nat -A PREROUTING -s  192.168.1.0/24 -p tcp --dport 1111 -j DNAT  --to-destination 2.2.2.2:1111 这就可以进行Linux端口转发流量了。 查看转发规则 sudo iptables -t nat -nL 1) docker bridge模式2) 安全方面,同主机上端口指定网卡ip上的流量转发 3) 端口转发到另外的服务器,见上边案例 4) snat场景 5) dnat场景,内网访问外网https://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7410272.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存