您现在的位置是:首页 >学无止境 >frp内网穿透网站首页学无止境
frp内网穿透
由于网络资源受限,部分服务器只有私网 IP ,没有公网 IP,即部分服务器无法被公网访问。但是有时我们需要通过公网对一些服务器进行访问,这样就出现了内网穿透。
1.工作原理
其本质是通过一台有公网 IP 的服务器,通过对应的协议和端口,和无公网服务器之间建立起一条虚拟隧道,达到让无公网 IP 的服务器也能被公网访问的目的。
2.配置
内网穿透有多个工具,具体参考:https://zhuanlan.zhihu.com/p/303175108 这里选择 frp 进行内网穿透,通过其工作原理可知,做内网穿透必须要有两台服务器:
- 具有公网 IP 的服务器(VPS),也叫服务端
- 无公网 IP 的服务器(目标服务器),称为客户端,即目标的主机
2.1 服务端配置
下载对应的 frp 压缩包
官网链接:https://github.com/fatedier/frp/releases/
mkdir ~/frps
cd ~/frps
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
解压压缩包
tar -zxf frp_0.37.1_linux_amd64.tar.gz
修改配置文件
cd frp_0.37.1_linux_amd64
vi frps.ini
frps.ini:
[common]
bind_port = 7000
token = <the conenntion passwd>
# dashboard相关配置,可以通过网页登录dashboard
dashboard_port = 7500
dashboard_user = <web interface login username>
dashboard_pwd = <web user login password>
bind_port: 与客户端连接时的端口, 客户端和服务端的该地址需要一致
dashboard_port: 管理界面端口
token: 与客户端连接时的密钥,客户端也需要有对应token的配置,否则无法连接
dashboard_user: 管理界面用户账号
dashboard_pwd: 管理界面账号密码
启动服务
./frps -c ./frps.ini &
【重要提醒】服务端记得放开服务器的端口,比如上面用到的7000和7500端口,都要在服务器的防火墙中放行。
2.2 WINDOWS客户端配置
1、下载对应 frp 压缩包
官网下载链接:https://github.com/fatedier/frp/releases
2、将 frp_0.33.0_windows_amd64.zip 解压至任意目录
3、进入解压目录这里所有 frpc 开头的文件都是客户端文件,所以全部删了,我们服务器只需要 frps 开头的文件
4、配置客户端
我们打开 frpc.ini
# 通用配置
[common]
# 服务端地址及端口
server_addr = 你的公网ip
server_port = 7000
token = 与服务端配置的密码一致
# 将本地 ssh 映射到服务器
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# 发布本地 web 服务
[web]
type = tcp
# 本地回环ip
local_ip = 127.0.0.1
# 5000一般为flask的默认开放端口
local_port = 5000
# 云服务器的80端口
remote_port = 80
最后,必须吐槽一下NATAPP,花了我9块钱,完全不好使。。。不清楚的文档一步一坑每一步都要交钱。还是frp好用。
参考文档:https://causehhc.github.io/2021/04/use-frp-to-achieve-intranet-penetration/