背景
当个人站点想对外展示,从而导致内网环境从外网无法访问,我们就需要用内网穿透工具或者购买组网硬件,从经济方面考量,本文将简述使用frp内网穿透工具的部署使用过程!全文以frp_0.33.0_linux_amd64.tar.gz安装作为参考
1、准备工具
- frp安装包
- 域名(主要用于站点的域名访问,可阿里云或其他平台上购买)
- 带公网ip的云服务器(作为frp的服务端,阿里云,腾讯云等都可以)
- 2台内网服务器(1台作为frp的客户端,一台作为站点测试)
2、开始部署
2.1下载frp:
通过百度网盘分享的文件:frp内网穿透
链接:https://pan.baidu.com/s/1cN9gTad-eT0Ln80e_Th-4g?pwd=8888
提取码:8888
2.2上传软件包
将下载好的frp文件分别上传到云服务器和内网服务器并解压
[root@mysql57 home]# tar -zxvf frp_0.33.0_linux_amd64.tar.gz
[root@mysql57 home]# ls
frp_0.33.0_linux_amd64 frp_0.33.0_linux_amd64.tar.gz
[root@fyhtest home]# tar -zxvf frp_0.33.0_linux_amd64.tar.gz
[root@fyhtest home]# ls
frp_0.33.0_linux_amd64 frp_0.33.0_linux_amd64.tar.gz
2.3修改配置文件
分别进入服务端和客户端修改配置文件
先修改服务端文件
[root@fyhtest home]# cd frp_0.33.0_linux_amd64/
[root@fyhtest frp_0.33.0_linux_amd64]# ls
frpc frpc.ini frps_full.ini LICENSE systemd
frpc_full.ini frps frps.ini
#上面列出的文件中有服务端的也有客户端的,选择服务端的配制即可,避免客户端文件影响可以将客户端的文件先删掉
[root@fyhtest frp_0.33.0_linux_amd64]# rm -rf frpc_full.ini frpc frpc.ini
[root@fyhtest frp_0.33.0_linux_amd64]# ls
frps frps_full.ini frps.ini LICENSE systemd
[root@fyhtest frp_0.33.0_linux_amd64]#
[root@fyhtest frp_0.33.0_linux_amd64]# vim frps.ini
[common]
# 启动监听7000通道端口,与客户端进行通讯(注意涉及到的端口都需要在云服务器中将端口放行-安全组配置)
bind_port = 7000
#端口80与443,用于接受用户输入域名访问时的默认端口,
vhost_http_port = 80
vhost_https_port = 443
#客户端通讯校验码
token = 12345678
# frp管理后台端口,请按自己需求更改(通过公网ip:7500)
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# frp日志配置(注意/var/log/frps.log 路径是否存在)
#log_file = /var/frps.log
#日志级别
log_level = info
log_max_days = 3
[ssh1]
#通讯类型
type = tcp
#与frp客户端通讯的端口(因为从公网到内网,所以要保证端口已放行-如阿里云安全组控制)
listen_port = 2288
[ssh2]
type = tcp
listen_port = 2289
[rdp]
type = tcp
remote_port = 6010
[web1]
type = http
custom_domains = fyh.aigw.top
[web2]
type = https
custom_domains = fyhwiki.aigw.top
再修改服务端文件
[root@mysql57 home]# cd frp_0.33.0_linux_amd64
[root@mysql57 frp_0.33.0_linux_amd64]# ls
frpc frpc.ini frps_full.ini LICENSE systemd
frpc_full.ini frps frps.ini
[root@mysql57 frp_0.33.0_linux_amd64]# rm -rf frps_full.ini frps frps.ini
[root@mysql57 frp_0.33.0_linux_amd64]# ls
frpc frpc_full.ini frpc.ini LICENSE systemd
[root@mysql57 frp_0.33.0_linux_amd64]# vim frpc.ini
[common]
#公网主机ip,作为数据转发中间服务器,部署了frp服务端
server_addr = 39.101.108.40
#与服务端进行通讯的端口
server_port = 7000
#与服务器端配置的一样值
token = 12345678
[ssh1]
type = tcp
#提供服务器的ip地址-注意需要与frp客户端能够网络可达(本机可以写127.0.0.1)
local_ip = 10.168.20.51
#提供服务的端口
local_port = 22
#外网访问的端口-与服务端的通讯端口(因为从公网到内网,所以要保证端口已放行-如阿里云安全组控制)
remote_port = 2288
[ssh2]
type = tcp
local_ip = 10.168.20.52
local_port = 22
remote_port = 2289
[rdp]
type = tcp
local_ip = 10.168.20.50
local_port = 3389
remote_port = 6010
[web1]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = fyh.aigw.top
[web2]
type = https
local_ip = 192.168.10.110
local_port = 8090
custom_domains = fyhwiki.aigw.top
2.4客户端与服务端配置比较
注意配置的域名需要进行域名购买后做dns解析
2.5启动服务
启动服务端
[root@fyhtest frp_0.33.0_linux_amd64]# ./frps -c frps.ini
2024/10/05 20:28:27 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
2024/10/05 20:28:27 [I] [service.go:220] http service listen on 0.0.0.0:80
2024/10/05 20:28:27 [I] [service.go:241] https service listen on 0.0.0.0:443
2024/10/05 20:28:27 [I] [service.go:277] Dashboard listen on 0.0.0.0:7500
2024/10/05 20:28:27 [I] [root.go:209] start frps success
启动客户端
[root@mysql57 frp_0.33.0_linux_amd64]# ./frpc -c frpc.ini
2024/10/05 20:29:49 [I] [service.go:282] [098eb299fad6b509] login to server success, get run id [098eb299fad6b509], server udp port [0]
2024/10/05 20:29:49 [I] [proxy_manager.go:144] [098eb299fad6b509] proxy added: [web2 ssh1 ssh2 rdp web1]
2024/10/05 20:29:49 [I] [control.go:179] [098eb299fad6b509] [web1] start proxy success
2024/10/05 20:29:49 [I] [control.go:179] [098eb299fad6b509] [web2] start proxy success
2024/10/05 20:29:49 [I] [control.go:179] [098eb299fad6b509] [ssh1] start proxy success
2024/10/05 20:29:49 [I] [control.go:179] [098eb299fad6b509] [ssh2] start proxy success
2024/10/05 20:29:49 [I] [control.go:179] [098eb299fad6b509] [rdp] start proxy success
2.6访问测试
手机或者其浏览器直接输入域名进行访问
fyh.aigw.top
3、注意事项
- 注意域名解析
- 注意云服务器安全组放行端口
- 注意服务端和客户端的配置文件,值有所关联