快速搭建frp的http内网穿透
- 一、frp是个啥
- 二、服务器端环境
- 1、先将frp专用子域名解析好
- 2、服务器端配置frp服务端
- 3、配置服务器端的nginx
- 三、客户端使用/配置
- 1、这里以windows为例子
- 四、dashboard
- 五、通过ssh访问内网
一、frp是个啥
中文文档:https://gofrp.org/docs/overview/
其实中文文档已经挺详细的了,但是依然还是有些坑的.
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
- 为啥用frp?
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
二、服务器端环境
- 一台公网服务器或者VPS
- 一个指向到此台公网服务器的域名,本文以spacevast.com 为例(仅做ssh内网穿透不需要)
- nginx
- frp v0.37.1
1、先将frp专用子域名解析好
- 取服务商的域名解析的地方,添加两条记录
*.frp.spacevast.com
为A记录
frp.spacevast.com
为A记录
记录值为服务器的公网ip
2、服务器端配置frp服务端
复制代码
1
2
3
4
5
6
7
8
9
10
11# 先切换到目录 cd /opt # 下载到当前目录,如果下载不下来,就想办法在本地下载下来,上传上去 wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz #解压 tar -zxvf frp_0.37.1_linux_amd64.tar.gz mv frp_0.37.1_linux_amd64.tar.gz frp cd frp ll
复制代码
1
2
3
4
5
6
7
8
9进入目录中可以看到 frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE 这七个文件 • frpc:客户端可执行程序 • frpc_full.ini:客户端所有配置项(可以再此文件查看frp的所有的配置项) • frpc.ini:客户端配置项 • frps:服务端可执行程序 • frps_full.ini:服务端所有配置项(可以再此文件查看frp的所有的配置项) • frps.ini:服务端配置项 • LICENSE:许可证
- 修改服务端的配置文件frps.ini
各个参数说明详见官方文档 https://gofrp.org/docs/reference/server-configures/
复制代码
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[common] bind_port = 7000 vhost_http_port = 7080 # 开启dashboard,frp提供了一个控制台,可以通过这个端口访问到控制台。可查看frp当前有多少代理连接以及对应的状态 dashboard_port = 7500 # dashboard 用户名密码,默认都为 admin dashboard_user = admin dashboard_pwd = xxxx # 日志存放路径 log_file = /opt/data/frp/log/frps.log log_level = warn log_max_days = 7 # 服务端的subdomain_host需要和客户端配置文件中的subdomain、local_port配合使用, # 可通过{subdomain}.{subdomain_host} 的域名格式来访问自己本地的 web 服务。 # 假如服务端的subdomain_host为frp.spacevast.com,客户端某个配置组中的 # subdomain为a,local_port为8585, # 则访问 a.frp.spacevast.com ,等同于访问本地的localhost:8585 subdomain_host = frp.spacevast.com uthentication_method = token authenticate_heartbeats = true authenticate_new_work_conns = true token = xxxxxx # 开启prometheus监控 enable_prometheus = true # 开启tcp穿透端口范围 allow_ports = 20000-30000
请一定要把端口7000/7500/7080/这三个端口在你的服务器提供商那里开放出来,如果用了宝塔,那么宝塔那边也需要开一次
- 配置系统启动项frp
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24cd /etc/systemd/system touch frps.service vi frps.service #把下面的内容粘贴进去 [Unit] Description=frps service [Service] ExecStart=/opt/frp/frps -c /opt/frp/frps.ini Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=frp-service User=root [Install] WantedBy=multi-user.target #启动frp systemctl start frps.service
- 如果启动报错了,有可能是因为log目录没建立,请建立好log目录
log_file = /opt/data/frp/log/frps.log
复制代码
1
2mkdir -vp /opt/data/frp/log/
3、配置服务器端的nginx
复制代码
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
51server { listen 80; server_name *.frp.spacevast.com frp.spacevast.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/frp.spacevast.com; #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END #ERROR-PAGE-START 错误页配置,可以注释、删除或修改 #error_page 404 /404.html; #error_page 502 /502.html; #ERROR-PAGE-END #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效 include /www/server/panel/vhost/rewrite/frp.spacevast.com.conf; #REWRITE-END location / { # 7080端口即为frp监听的http端口 proxy_pass http://127.0.0.1:7080; proxy_set_header Host $host:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d; } # 防止爬虫抓取 if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot") { return 403; } #一键申请SSL证书验证目录相关设置 location ~ .well-known{ allow all; } access_log /www/wwwlogs/frp.spacevast.com.log; error_log /www/wwwlogs/frp.spacevast.com.error.log; }
- 重新加载nginx配置或重启nginx
复制代码
1
2
3
4nginx -s reload #或者 systemctl restart nginx
三、客户端使用/配置
下载对应客户端的包:https://github.com/fatedier/frp/releases
1、这里以windows为例子
- 解压后得到如下目录
- 编辑客户端的ini文件frpc.ini
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[common] server_addr = 公网服务器的ip server_port = 7000 # 开启token认证 authentication_method = token authenticate_heartbeats = true authenticate_new_work_conns = true token = xxxxx(要和服务器配置的token一样) [web01] type = http local_port = 81 #这里是二级域名,比如这个web01最终浏览器访问为 http://web01.frp.spacevast.com subdomain= web01 use_encryption = true use_compression = true
- 命令行启动
复制代码
1
2
3#切换到frp所在目录 ./frpc.exe
- 出现如下信息说明启动成功
- 下面就可以浏览器输入
http://web01.frp.spacevast.com
测试一下了~
四、dashboard
浏览器访问frp.spacevast.com,输入刚刚配置的账号密码访问
五、通过ssh访问内网
- 修改frps.ini文件,配置一个名为ssh的方向代理
复制代码
1
2
3
4
5
6
7# frps.ini [common] bind_port = 7000 [ssh] listen_port = 6000 auth_token = 123456_
- 启动frps
- 修改frpc.ini文件
复制代码
1
2
3
4
5
6
7
8# frpc.ini [common] server_addr = x.x.x.x server_port = 7000 auth_token = 123456_ [ssh] local_port = 22
- 启动frpc
- 通过ssh访问内网机器
复制代码
1
2ssh -oPort=6000 root@x.x.x.x
End.
给个一键三连呀~
最后
以上就是开放豆芽最近收集整理的关于快速搭建frp的http和ssh的内网穿透的全部内容,更多相关快速搭建frp内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复