部署Frp内网穿透
本文于
324
天之前发表,文中内容可能已经过时。
Frp是一个简单高效的内网穿透工具,在GitHub上开源,并有一直更新的release版本。
官网
gofrp官网
gofrp官网示例
配置
服务端
修改.ini
文件
1 2 3 4 5 6 7 8
| [common] bind_port = 7000 dashboard_port = 7500 token = password dashboard_user = username dashboard_pwd = password vhost_http_port = 80 vhost_https_port = 443
|
这里的vhost_http_port
和vhost_https_port
表示默认的http和https穿透端口,我们改成默认端口80和443。
如果设置vhost_http_port = 8080
,那么客户端选择http服务时,要在子域名后面加上端口号才可以访问。
客户端
修改.ini
文件,如果http
网站没有域名,可以使用tcp(如下方的ssh);如果需要穿透到域名,则使用http/https。
如果选择https,一般直接把SSL证书交给frp客户端,使用https转http的插件(自带)即可。如果内网部署的服务不在80端口,一定要在plugin_host_header_rewrite
里面加上端口号!
下面是我的配置,网站可以只开https,关掉http。
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| [common] server_addr = 公网IP server_port = 7000 token = password
[ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 7022
[main_http] type = http local_port = 80 custom_domains = doamin.com
[main_https] type = https custom_domains = doamin.com
plugin = https2http plugin_local_addr = 127.0.0.1:80
# HTTPS 证书相关的配置 plugin_crt_path = ./doamin.com_bundle.crt plugin_key_path = ./doamin.com.key plugin_host_header_rewrite = 127.0.0.1 plugin_header_X-From-Where = frp
[hexo_http] type = http local_port = 7080 custom_domains = hexo.doamin.com
[hexo_https] type = https custom_domains = hexo.doamin.com
plugin = https2http plugin_local_addr = 127.0.0.1:7080
# HTTPS 证书相关的配置 plugin_crt_path = ./hexo.doamin.com_bundle.crt plugin_key_path = ./hexo.doamin.com.key plugin_host_header_rewrite = 127.0.0.1:7080 plugin_header_X-From-Where = frp
[trans_http] type = http local_port = 7050 custom_domains = trans.doamin.com
[trans_https] type = https custom_domains = trans.doamin.com
plugin = https2http plugin_local_addr = 127.0.0.1:7050
# HTTPS 证书相关的配置 plugin_crt_path = ./trans.doamin.com_bundle.crt plugin_key_path = ./trans.doamin.com.key plugin_host_header_rewrite = 127.0.0.1:7050 plugin_header_X-From-Where = frp
|
然后开机自启动,在/etc/rc.local
中添加,记得把frpc的地址改为自己的:
1
| nohup /root/tools/frp/frpc -c /root/tools/frp/frpc.ini > /tmp/frp_client.log 2>&1 &
|
域名解析
域名解析是困扰我最多的一个问题,最后还是在frp官网上找到了答案。
http下面的二级域名不需要通过隐式url转到主域名:端口
,而是直接A解析到IP地址即可。而https的话,在申请ssl证书时候,腾讯云会自动给加上解析。
参考文献
- 使用frp进行内网穿透 - 少数派 (sspai.com)
- 新手入门 - 详解 frp 内网穿透 frpc.ini 配置 - 思有云 - IOIOX
- 安装 | frp (gofrp.org)
- https://github.com/fatedier/frp/
- 新手入门 - 详解 frp 内网穿透 frpc.ini 配置 - 思有云 - IOIOX
- 使用frp无域名http内网穿透配置 - 掘金 (juejin.cn)