SSH端口转发实现内网穿透的实现

SSH端口转发也称为SSH隧道,是一种将本地TCP端口转发到远程服务器上的技术,通常用于内网穿透。

以下是一些步骤:

1. 在Windows或其他本地操作系统上打开终端。
2. 连接到远程服务器:ssh user@remote-server-ip。
3. 启用端口转发并指定需要转发的本地端口和远程主机的目标端口:ssh -L local-port:remote-host:remote-port user@remote-server-ip。
4. 这样,本地端口local-port的流量将通过SSH隧道转发到远程服务器上的remote-host:remote-port。在应用程序中将该端口设置为使用本地即可访问远程主机。

例如,要将本地端口80转发到远程服务器192.168.1.100的端口80:

ssh -L 80:192.168.1.100:80 user@remote-server-ip

然后,您可以在浏览器中输入localhost:80来访问远程服务器上的Web应用程序。

需要注意的是,SSH隧道的方式是将流量全部转发到远程主机,如果有多个人同时使用这个隧道,将会影响隧道的性能。同时SSH隧道在数据加密等方面会带来一定的性能开销。

SSH Tunneling(SSH隧道)是一种通过加密的安全外壳协议(Secure Shell Protocol,简称SSH)传输其他流量的技术。它可以用于实现内网穿透,让外部网络能够访问位于内网中的资源。 以下是利用SSH Tunneling实现内网穿透的具体步骤: 1. **准备条件** - 拥有一个带公网IP的服务器(称为跳板机),并开放SSH服务。 - 客户端(如个人电脑或手机)以及需要被访问的目标内网机器均能正常上网,并安装好SSH客户端软件。 2. **本地端口转发(Local Port Forwarding)** 这是最简单的形式。假如你想从互联网上的任意地方访问只有在公司内部才能使用的数据库服务(比如MySQL),你可以这样做: ``` ssh -L [本地绑定地址]:[本地监听端口]:[目标服务器地址]:[目标服务器端口] 用户名@[跳板机公网ip] ``` 示例: ```bash ssh -L 127.0.0.1:3306:localhost:3306 user@public_server_ip ``` 此命令将在您的计算机上启动一个SSH会话,并将所有发往您计算机的127.0.0.1:3306 的数据发送到 public_server 上并通过它再传送到最终目标即 localhost:3306 (这里的localhost是从public_server角度来看的实际内网mysql server). 3. **远程端口转发(Remote Port Forwarding)** 当我们想把内网里的某个服务暴露出来给别人用的时候就适合这种方法。假设你有一台只能在家里面联网的小型web应用服务器,但是现在外面的朋友也想看看它的成果,那么就可以这么做: ``` ssh -R [远程绑定地址]:[远程监听端口]:[源服务器地址]:[源服务器端口] 用户名@[跳板机公网ip] ``` 示例: ```bash ssh -R *:8080:localhost:80 user@public_server_ip ``` 4. **动态端口转发(Dynamic Port Forwarding/SOCKS Proxy)** 对于不确定要访问哪些网站的情况或者希望更灵活地控制所有的出站连接时,可以选择创建SOCKS代理: ``` ssh -D [本地绑定地址]:[本地监听端口] 用户名@[跳板机公网ip] ``` 使用浏览器或者其他支持socks5代理的应用设置上述生成的代理后,即可伪装成从jumpserver发出的所有请求了。 注意:以上各种模式都需要提前确认防火墙规则允许相应的入站和出站流量才行哦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

团团很腻害

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值