我是靠谱客的博主 开放豆芽,这篇文章主要介绍快速搭建frp的http和ssh的内网穿透,现在分享给大家,希望可以做个参考。

快速搭建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

image-20210808173454882

复制代码
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
24
cd /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
2
mkdir -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
51
server { 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
4
nginx -s reload #或者 systemctl restart nginx

三、客户端使用/配置

下载对应客户端的包:https://github.com/fatedier/frp/releases

image-20210808175030835

1、这里以windows为例子

  • 解压后得到如下目录

image-20210808175202037

  • 编辑客户端的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
  • 出现如下信息说明启动成功

image-20210808175603015

  • 下面就可以浏览器输入

http://web01.frp.spacevast.com测试一下了~

四、dashboard

浏览器访问frp.spacevast.com,输入刚刚配置的账号密码访问

image-20210808175817520

五、通过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
2
ssh -oPort=6000 root@x.x.x.x

End.

给个一键三连呀~

最后

以上就是开放豆芽最近收集整理的关于快速搭建frp的http和ssh的内网穿透的全部内容,更多相关快速搭建frp内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部