什么是内网穿透?
简单来说就是让你的电脑通过frp服务器可以通过公网来访问
有什么用?
方便开发和调试微信小程序之类的项目
服务端
如果是部署在阿里云等云服务器上, 注意要开放安全组端口
yaml
services:
frps:
container_name: frps
image: snowdreamtech/frps:0.53.0
network_mode: host
volumes:
- ./frps.toml:/etc/frp/frps.toml
- ./log/:/etc/frp/log/
toml
[common]
# 需要跟 frpc 保持一致
bind_port = 8800
kcp_bind_port = 8800
vhost_http_port = 8880
vhost_https_port = 8443
authentication_method = 'token'
token = 'your-token-string'
# frps 后台(可以查看当前在线的客户端)
dashboard_user = 'your-username'
dashboard_pwd = 'your-password'
dashboard_port = 8888
# frp 日志配置
log_file = '/etc/frp/log/frps.log'
log_level = 'info'
log_max_days = 3
客户端
yaml
services:
frpc:
container_name: frpc
image: snowdreamtech/frpc:0.53.0
network_mode: host
volumes:
- ./frpc.toml:/etc/frp/frpc.toml
toml
[common]
server_addr = "x.x.x.x" # 服务器的地址
server_port = 8800 # 注意和服务端保持一致
authentication_method = "token"
token = "your-token-string" # 注意和服务端保持一致
[ssh]
# 直接通过 ssh 登录本地电脑
type = 'tcp'
local_ip = '127.0.0.1'
local_port = 22
remote_port = 8022
# 尽量将这些服务的端口设置为一致的, 如果不一致(如: local_port:8801 remote_port:8888)
# 那么在访问 http://frp.liaohui5.cn:8888 的时候就会自动访问本地的 8801
[demo1]
type = 'tcp'
custom_domains = 'frp.liaohui5.cn'
local_ip = '127.0.0.1'
local_port = 8801
remote_port = 8801
[demo2]
type = 'tcp'
custom_domains = 'frp.liaohui5.cn'
local_ip = '127.0.0.1'
local_port = 8802
remote_port = 8802
测试
启动两个服务并且监听对应端口
启动一个本地服务器的端口有很多, 如: http-server vite serve live-server
sh
# demo1
mkdir -p ./demos/demo1
echo "<h1>111111111</h1>" > ./demos/demo1/index.html
vite ./demos/demo1 --port 8801
# demo2
mkdir -p ./demos/demo2
echo "<h1>222222222</h1>" > ./demos/demo2/index.html
vite ./demos/demo2 --port 8802
通过url访问
注意, 不是通过 localhost 来访问, 而是通过配置文件中的 custom_domains
来访问
浏览器打开: http://frp.liaohui5.cn:8801
浏览器打开: http://frp.liaohui5.cn:8802