frp内网穿透
要实现内网穿透,可以使用一些常见的内网穿透软件,如:
- frp (Fast Reverse Proxy):高性能的反向代理应用,可以实现内网服务的穿透。
- ngrok:易于使用的反向代理工具。
- ZeroTier:一个虚拟网络,可以轻松地将设备连接到同一个网络中。
这里以 frp 为例,来讲解如何设置内网穿透:
A为局域网内的主机,B为拥有公网IP的服务器主机
安装 frp
- 下载 frp
在服务器 B 和主机 A 上都下载 frp:
# 在服务器 B 上
wget https://github.com/fatedier/frp/releases/download/v0.40.0/frp_0.40.0_linux_amd64.tar.gz
tar -xzf frp_0.40.0_linux_amd64.tar.gz
cd frp_0.40.0_linux_amd64
# 在主机 A 上
wget https://github.com/fatedier/frp/releases/download/v0.40.0/frp_0.40.0_linux_amd64.tar.gz
tar -xzf frp_0.40.0_linux_amd64.tar.gz
cd frp_0.40.0_linux_amd64
- 配置服务器 B(frps.ini)
在服务器 B 上创建 frps.ini
配置文件:
[common]
bind_port = 7000
启动 frp 服务端:
./frps -c ./frps.ini
- 配置主机 A(frpc.ini)
在主机 A 上创建 frpc.ini
配置文件:
[common]
server_addr = <服务器B的公网IP>
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 6001
启动 frp 客户端:
./frpc -c ./frpc.ini
使用方式
- 现在可以通过服务器 B 的公网 IP 访问主机 A 的 SSH 服务:
ssh -p 6000 <用户名>@<服务器B的公网IP>
- 也可以通过服务器 B 的公网 IP 访问主机 A 的 MySQL 服务:
mysql -h <服务器B的公网IP> -P 6001 -u <用户名> -p
注意事项
- 确保防火墙允许相应的端口(如7000, 6000, 6001)通过。
- 根据需要修改配置文件中的端口和其他参数。
这样,通过 frp,你就可以在公网服务器 B 上访问到局域网主机 A 上的 SSH 和 MySQL 服务了。