FRP配置内网穿透

1、内网穿透是什么?

内网穿透即NAT(网络地址转换)穿透,在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。通过映射端口,让外网的电脑找到处于内网的电脑。

2、为什么需要用到内网穿透?

在日常开发过程中,有些功能在开发阶段,需要把部署在内网的服务公开到外网以供访问,这时就需要借助内网穿透工具来实现。

3、怎么用FRP实现内网穿透?

3.1 FRP介绍

通过网上查找资料对比,我采用FRP来实现内网穿透。FRP是一个开源、简洁易用,高性能的内网穿透和反向代理软件,支持tcp、upp、http、https等协议。

3.2 FRP配置说明

使用FRP配置内网穿透,需要一台具有外网IP的服务器,我用的是腾讯云服务器。FRP配置教程分为两部分,一个是服务器端的配置,另一个是客户端的配置。

3.3 FRP服务端配置

1. 执行以下命令,下载frp工具压缩包。

wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz

2. 执行以下命令,解压frp工具包。

tar -xvf frp_0.38.0_linux_amd64.tar.gz 

3. 执行以下命令,移动至/usr/local。

mkdir /usr/local/frp mv frp_0.38.0_linux_amd64/* /usr/local/frp/

4.(可选)删除frpc.ini和frpc文件,frpc相关的文件属于客户端配置。

cd /usr/local/frp/ rm frpc.ini rm frpc

5. 进入到该解压目录,并打开配置文件。

cd /usr/local/frp/ vi frps.ini

6. 编辑配置文件内容如下,保存后退出。

[common] # frp监听的端口,默认是7000 bind_port = 7000 # 自定义设置的http访问端口 vhost_http_port = 7001 # 授权码 token = oEeD5E2uv5 # frp管理后台端口 dashboard_port = 6500 # frp管理后台用户名和密码 dashboard_user = admin dashboard_pwd = admin@123 enable_prometheus = true # frp日志配置 log_file = /var/log/frps.log log_level = info log_max_days = 3 # 域名访问配置 subdomain_host = demo.com privilege_mode = true

7. 设置和启动frp服务

mkdir -p /etc/frp cp frps.ini /etc/frp cp frps /usr/bin cp systemd/frps.service /usr/lib/systemd/system/ systemctl enable frps systemctl start frps

8. 服务器防火墙开放端口:6500、7000、7001、7002。

9. 验证服务端是否启动成功

访问:http://服务器IP:后台管理端口,输入用户名和密码可以查看连接状态。

如:http://106.34.xx.xxx:6500,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd。

FRP配置内网穿透插图

3.4 FRP客户端配置

1. 下载window版的frp库

https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_windows_amd64.zip

2. 解压frp压缩包,进入该解压目录,并打开配置文件frpc.ini,将文件内容修改如下:

[common] # 服务器IP地址 server_addr = 106.34.xx.xxx # 与frps.ini的bind_port一致 server_port = 7000 # 与frps.ini的token一致 token = oEeD5E2uv5 # 配置http服务,用于域名访问 [web] type = http local_ip = 127.0.0.1 local_port = 10010 subdomain = test # 配置tcp服务,用于ip访问 [web1] type = tcp local_ip = 127.0.0.1 local_port = 10010 remote_port = 7002

3. 启动客户端,在frp解压目录下执行。

frpc -c frpc.ini

4. 看到以下信息,说明配置已成功。

2023/01/04 14:36:19 [I] [service.go:301] [f85076e934dbff04] login to server success, get run id [f85076e934dbff04], server udp port [0] 2023/01/04 14:36:19 [I] [proxy_manager.go:144] [f85076e934dbff04] proxy added: [web web1] 2023/01/04 14:36:19 [I] [control.go:180] [f85076e934dbff04] [web] start proxy success 2023/01/04 14:36:19 [I] [control.go:180] [f85076e934dbff04] [web1] start proxy success

5. 测试内网穿透是否成功。

使用域名访问:http://test.demo.com:7001

使用IP访问:http://106.34.xx.xxx:7002

4、配置FRP有哪些需要注意的?

尽量避开浏览器 ERR_UNSAFE_PORT,这些端口浏览器会识别为不安全端口,不能访问。例如以下端口:

1, // tcpmux 7, // echo 9, // discard 11, // systat 13, // daytime 15, // netstat 17, // qotd 19, // chargen 20, // ftp data 21, // ftp access 22, // ssh 23, // telnet 25, // smtp 37, // time 42, // name 43, // nicname 53, // domain 77, // priv-rjs 79, // finger 87, // ttylink 95, // supdup 101, // hostriame 102, // iso-tsap 103, // gppitnp 104, // acr-nema 109, // pop2 110, // pop3 111, // sunrpc 113, // auth 115, // sftp 117, // uucp-path 119, // nntp 123, // NTP 135, // loc-srv /epmap 139, // netbios 143, // imap2 179, // BGP 389, // ldap 465, // smtp+ssl 512, // print / exec 513, // login 514, // shell 515, // printer 526, // tempo 530, // courier 531, // chat 532, // netnews 540, // uucp 556, // remotefs 563, // nntp+ssl 587, // stmp? 601, // ?? 636, // ldap+ssl 993, // ldap+ssl 995, // pop3+ssl 2049, // nfs 3659, // apple-sasl / PasswordServer 4045, // lockd 6000, // X11 6665, // Alternate IRC [Apple addition] 6666, // Alternate IRC [Apple addition] 6667, // Standard IRC [Apple addition] 6668, // Alternate IRC [Apple addition] 6669, // Alternate IRC [Apple addition]

参考文章:

frp内网穿透工具 – 钉钉开放平台

FRP搭建内网穿透(亲测有效)_Jane_jian的博客-CSDN博客_frp

使用frp配置内网访问(穿透)教程(超详细,简单)_*Lisen的博客-CSDN博客_frp

原文链接:https://blog.csdn.net/Markarth/article/details/128550175

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享