在日常开发、运维或远程办公中,你是否遇到过这样的问题:公司内网有一台数据库服务器,只能在局域网内访问,但你在家却需要连接它?或者你有一台树莓派运行着Web服务,但没有公网IP,外网无法直接访问?这时候,Linux端口转发就能帮你解决这些问题!
本文将从零开始,用通俗易懂的语言带你了解并实操Linux端口转发技术,即使你是完全的小白,也能轻松上手。
端口转发(Port Forwarding)是一种网络技术,它允许将一个网络端口上的流量“转发”到另一个端口或另一台机器上。简单来说,就是让外部请求通过某个“中间人”服务器,最终到达目标服务。
常见的应用场景包括:
在Linux系统中,最常用也最安全的端口转发方式是使用SSH隧道。SSH本身加密传输,配置简单,无需额外安装软件。
SSH端口转发分为三种类型:
适用于:你想从本地访问远程内网的服务。
场景举例:你在家里(本地),想访问公司内网的一台MySQL数据库(192.168.1.100:3306),但该数据库不能直接从外网访问。不过你有一台可以SSH登录的公司跳板机(jump.example.com)。
命令如下:
ssh -L 本地端口:目标主机:目标端口 用户名@跳板机地址
具体例子:
ssh -L 3307:192.168.1.100:3306 user@jump.example.com
执行后,你在本地访问 localhost:3307,就相当于访问公司内网的 192.168.1.100:3306。
适用于:内网穿透——你想把本地(比如家里的电脑)的服务暴露给外网访问。
场景举例:你在本地运行了一个Web服务(localhost:8080),但你的家庭宽带没有公网IP。你有一台具有公网IP的云服务器(cloud.example.com)。你可以通过远程端口转发,让外网用户访问云服务器的某个端口,从而访问你本地的服务。
命令如下:
ssh -R 远程端口:本地主机:本地端口 用户名@云服务器地址
具体例子:
ssh -R 8080:localhost:8080 user@cloud.example.com
现在,别人访问 http://cloud.example.com:8080,实际上看到的是你本地电脑上运行的Web服务!
这相当于创建一个SOCKS代理,适合需要转发多个不同端口的场景(如浏览器代理)。
ssh -D 1080 user@jump.example.com
然后在浏览器中设置SOCKS代理为 127.0.0.1:1080,所有流量就会通过SSH隧道转发。
/etc/ssh/sshd_config中设置GatewayPorts yes,否则只能本机访问转发的端口autossh工具防止断连通过本文,你已经掌握了Linux下基于SSH的网络端口映射技术。无论是访问内网资源,还是实现内网穿透,SSH隧道都是一个强大而安全的工具。记住三个关键参数:-L(本地)、-R(远程)、-D(动态),就能应对大多数端口转发需求。
赶快动手试试吧!遇到问题欢迎留言讨论。
关键词:Linux端口转发, SSH隧道, 网络端口映射, 内网穿透
本文由主机测评网于2025-11-22发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511457.html