常见的内网穿透技术介绍:https://juejin.cn/post/6844904169497690120
FRP
开源的内网穿透软件,需要在个人云主机上启动server,在内网机器上启动client服务,利用云主机的公网IP来进行访问,IP和端口都是固定的。
Github: https://github.com/fatedier/frp
官方文档:https://gofrp.org/zh-cn/
下载列表:https://github.com/fatedier/frp/releases
安装文档参考:https://zhuanlan.zhihu.com/p/456124824
服务端
按照个人需求,修改frps.toml中配置的端口等数据,同时需要修改frps.service中服务启动的可执行文件路径和启动配置文件路径。
代码语言:javascript复制wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_amd64.tar.gz
tar -xf frp_0.58.0_linux_amd64.tar.gz
cd frp_0.58.0_linux_amd64
cat > frps.toml <<EOF
bindPort = 8100
webServer.addr = "0.0.0.0"
webServer.port = 8101
# dashboard's username and password are both optional
webServer.user = "admin"
webServer.password = "xxx"
EOF
cat > /etc/systemd/system/frps.service<<EOF
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /data/frp_0.58.0_linux_amd64/frps -c /data/frp_0.58.0_linux_amd64/frps.toml
[Install]
WantedBy = multi-user.target
EOF
systemctl enable frps
systemctl start frps
客户端
若在树莓派中启动客户端,需要把systemd服务配置信息中的network.target
修改为network-online.target
。配置中的remotePort
需要在防火墙开白名单。
按照个人需求,修改frpc.toml中配置的端口和远程服务端IP及端口等数据,同时需要修改frpc.service中服务启动的可执行文件路径和启动配置文件路径。
本地每个端口若要映射到公网,则都需要配置一个完整的[[proxies]]配置信息。
代码语言:javascript复制wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_arm64.tar.gz
tar -xf frp_0.58.0_linux_amd64.tar.gz
cd frp_0.58.0_linux_amd64
cat > frpc.toml <<EOF
serverAddr = "42.x.x.x"
serverPort = 8100
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 8022
EOF
cat > /etc/systemd/system/frpc.service<<EOF
[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frpc的命令,需修改为您的frpc的安装路径
ExecStart = /home/frp_0.58.0_linux_arm64/frpc -c /home/frp_0.58.0_linux_arm64/frpc.toml
[Install]
WantedBy = multi-user.target
EOF
systemctl enable frpc
systemctl start frpc
Cpolar
https://dashboard.cpolar.com/status
免费使用,在客户端启动如下服务,但是每次重启后的地址和端口都会变化,若要固定地址和端口,则需要升级会员。
代码语言:javascript复制 // 连接帐户
./cpolar authtoken xxx
// 在端口80上启动HTTP隧道
./cpolar http 8080