当前位置:首页 > 系统教程 > 正文

Linux内网穿透实战教程(手动部署与测试指南)

Linux内网穿透实战教程(手动部署与测试指南)

内网穿透是一种技术,允许从外部网络访问内网中的服务,如网站、数据库或应用程序。这对于远程办公、开发测试或家庭网络管理非常有用。本教程将详细介绍在Linux系统上手动部署并测试内网穿透的步骤,即使你是小白,也能轻松跟上。

一、准备工作

在开始之前,你需要准备以下内容:

  • 一台具有公网IP的服务器(称为跳板机或VPS),用于中转流量。
  • 一台内网Linux机器(如家庭路由器后的PC或服务器),需要被外部访问。
  • 确保两台机器都安装了SSH客户端和服务端。通常Linux系统自带SSH,如果没有,可通过sudo apt-get install openssh-client openssh-server(Debian/Ubuntu)或sudo yum install openssh-clients openssh-server(CentOS/RHEL)安装。

内网穿透的核心原理是通过SSH隧道将内网端口映射到公网服务器,实现访问。这里我们使用SSH反向隧道,这是一种简单可靠的方法。

Linux内网穿透实战教程(手动部署与测试指南) 内网穿透 Linux部署 SSH隧道 端口转发 第1张

二、部署步骤:手动设置SSH反向隧道

SSH隧道是一种安全的端口转发方式,适合内网穿透部署。以下是详细步骤:

  1. 内网Linux机器上,执行以下命令建立反向隧道:
    ssh -fN -R 公网服务器端口:localhost:内网服务端口 用户名@公网服务器IP -p SSH端口
    示例:假设公网服务器IP为203.0.113.1,SSH端口为22(默认),想将内网的Web服务(端口80)映射到公网服务器的8080端口,命令为:
    ssh -fN -R 8080:localhost:80 user@203.0.113.1
    参数解释:
    • -f:后台运行SSH。
    • -N:不执行远程命令,仅用于端口转发。
    • -R:建立反向隧道,将公网服务器端口转发到内网。
  2. 公网服务器上,需要允许SSH隧道绑定。编辑SSH配置文件/etc/ssh/sshd_config,确保有以下行:
    GatewayPorts yes
    然后重启SSH服务:
    sudo systemctl restart sshd
    这确保公网服务器可以监听外部连接,实现端口转发。
  3. 为了保持隧道稳定,可以在内网机器上设置自动重连。创建一个脚本tunnel.sh
    #!/bin/bashwhile true; do  ssh -fN -R 8080:localhost:80 user@203.0.113.1  sleep 60  # 如果断开,每60秒重试 done
    运行chmod +x tunnel.sh后,执行./tunnel.sh &在后台运行。

通过以上步骤,你已经完成了Linux部署内网穿透的基本设置。这利用了SSH隧道的安全性,适合个人或小规模使用。

三、测试内网穿透是否成功

部署后,需要测试内网穿透是否工作:

  1. 公网服务器上,检查端口是否监听:
    sudo netstat -tlnp | grep 8080
    如果输出显示0.0.0.0:8080:::8080在监听,说明隧道已建立。
  2. 外部网络(如你的手机或另一台电脑),访问公网服务器的IP和端口。例如,在浏览器中输入http://203.0.113.1:8080。如果能看到内网机器上的Web服务(如Apache或Nginx默认页面),则内网穿透成功。
  3. 如果无法访问,检查防火墙设置。在公网服务器上,开放对应端口:
    sudo ufw allow 8080/tcp  # 如果使用UFW
    或使用iptables。同时确保内网机器的服务正在运行。

这些测试步骤能帮助你验证端口转发是否生效,确保内网服务可被外部访问。

四、总结与注意事项

本教程介绍了手动部署内网穿透的方法,使用SSH反向隧道实现Linux部署。这种方法简单、安全,适合小白入门。记住以下关键点:

  • 保持隧道连接稳定,建议使用脚本或工具(如autossh)自动重连。
  • 确保公网服务器的SSH配置允许GatewayPorts,以支持外部绑定。
  • 安全考虑:使用SSH密钥认证代替密码,并限制访问IP。

通过本教程,你学会了手动部署并测试内网穿透。这不仅可以用于Web服务,还可扩展至数据库、远程桌面等场景。内网穿透是远程访问的强大工具,结合Linux部署和SSH隧道,能大大提升工作效率。

如果你想深入学习,可以探索其他工具如frp或ngrok,但SSH隧道是最基础且无需额外软件的方法。希望本指南对你有所帮助!