最近需要用到内网穿透服务,突然想到手头正好有一台主机挺闲的,用来搭内网穿透服务再合适不过了。于是在网上搜寻一番,发现使用较多的是 frp 和 ngrok,但是 ngrok 的源代码只停留在 1.x,2.x 版本以及更新的服务只能通过注册使用,于是放弃了它转而使用 frp。
服务端和客户端同时安装 frp 程序,安装和配置的过程都比较简单。在对应的平台下载对应的 release 包后,修改配置文件,启动即可。由于这台主机对外只开放了 80 和 443 端口,使用 nginx 提供反向代理,隐藏了内部的各个系统,同样的,我需要使用 nginx 反代 frp 的服务。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| # nginx.conf server { listen 443 ssl http2; server_name nat.nekolr.com; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_certificate /etc/letsencrypt/live/nekolr.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nekolr.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/nekolr.com/chain.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_pass http://localhost:6081; } error_page 404 /404.html; }
|
1 2 3 4 5 6 7 8
| [common] bind_port = 7000
vhost_http_port = 6081 log_file = ./frps.log log_level = info log_max_days = 3
|
1 2 3 4 5 6 7 8 9 10
| [common] server_addr = 公网环境中的主机 IP server_port = 7000
[web] type = http
local_port = 8080 custom_domains = nat.nekolr.com
|