linux内网穿透无需配置本机ip,只需内网设备能上网,通过frp、巴比达或花生壳等客户端主动连接公网服务器建立隧道;外网访问使用服务端分配的ip+端口或域名。

Linux 中配置内网穿透,不依赖本地 IP 地址配置(如 ifconfig 或 ip addr)来实现穿透本身,而是通过在内网设备上运行穿透客户端(如 frp、巴比达、花生壳等),主动连接公网中转服务器,建立隧道。所谓“代理IP”,实际是穿透服务端分配或你自建的公网 IP + 端口(或域名),不是 Linux 本机网卡要设置的那个 IP。
重点在于:
✅ 内网设备只需能上网(哪怕只有内网 IP,如 192.168.1.100 或 10.0.2.15),无需公网 IP,也不用改网卡 IP 配置;
❌ 不要试图用 ip addr add x.x.x.x/24 dev eth0 去“配一个代理IP”——这既无效,还可能破坏网络。
下面分三类常见场景说明怎么做:
一、用 frp 自建穿透(推荐可控、安全)
-
服务端(云服务器):需有公网 IP(如
203.205.123.45),在/etc/frp/frps.toml中配置:bindAddr = "0.0.0.0" bindPort = 7000 auth.token = "Y0ur$tr0ngT0ken!2026" # 必须强密码 # webServer.addr = "127.0.0.1" # 生产环境建议注释掉仪表盘 allowPorts = [80, 443, 8080, 10000-19999]
-
客户端(你的 Linux 内网机):保持原有 IP(如
192.168.1.50不变),只配frpc.toml:serverAddr = "203.205.123.45" # 填真实 IP,别填域名(除非加 dns_server) serverPort = 7000 auth.token = "Y0ur$tr0ngT0ken!2026" [[proxies]] name = "web" type = "tcp" localIP = "127.0.0.1" localPort = 8080 remotePort = 8080
- 外网访问地址就是:
http://203.205.123.45:8080
二、用神卓互联巴比达(免服务器、一键登录)
- 你的 Linux 设备保持原 IP(如
10.10.0.20),执行下载命令(按架构选):# x86_64 示例 sudo mkdir -p /usr/local/babida && cd /usr/local/babida sudo wget https://dl.babida.com/linux/x86_64/babida -O babida sudo chmod +x babida
- 登录绑定(用官网注册的手机号和密码):
sudo ./babida -u 138****1234 -p YourPass2026
- 登录成功后,去官网后台添加映射:选本地
127.0.0.1:22→ 自动生成类似ssh-abc123.babida.com:2222的公网入口。
三、用贝锐花生壳(图形/命令行双支持)
- 官网下载
.deb或.rpm包安装,启动后自动获取账号绑定; - 在 Web 控制台添加映射时,“内网主机”填你本机当前 IP(可用
hostname -I | awk '{print $1}'查),比如192.168.1.50,端口填22或80; - 系统会分配一个二级域名(如
xxx.oray.com),外网直接访问即可。
不需要、也不应该:
- 给网卡手动添加公网段 IP(如
114.114.x.x); - 修改
/etc/network/interfaces或nmcli去“配代理IP”; - 以为
proxy_http或export http_proxy=能实现穿透(那是应用层代理,不解决 NAT 穿透问题)。
本质上,内网穿透靠的是客户端主动出站建连 + 服务端反向转发,和本机 IP 配置无关。只要 ping baidu.com 通,就能穿。











