frp内网穿透的搭建与使用

发布时间 2023-08-16 14:44:41作者: 丁少华

什么是内网穿透

内网穿透,又称为NAT穿透。
NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。
总之就是内网可以连公网,公网可以连公网和内网,但内网和内网无法连,但在中间加一个公网的中转服就能实现穿透!

目前内网穿透技术有很多,比如收费的花生壳、向日葵、神卓互联、ngrok等等。
当然如果你不想数据掌握在别人手中,且有自己的服务器,那么可以通过开源技术自己搭建一个,比如frp

frp服务器

下载软件包

下载服务器端程序,选择合适的版本即可,比如我的服务器是intel的处理器,且是linux系统

下载到服务器之后,解压。

 tar -xzvf frp_0.51.3_linux_386.tar.gz

可以看到有很多文件,因为frp根据平台来区分不同版本,但是把客户端和服务端都压缩到一个文件包中了。
其中frps就是frp server端的部分;frpc 是frp client端的部分。这里我们只需要关心Server端。
可以直接删掉frpc、frpc_full.ini、frpc.ini三个文件,节省硬盘空间。

find . -name 'frpc*' -exec rm {} \;

移动至 /usr/local(非必须 但是个好习惯)
在/usr/local/下创建一个frp文件夹。 /usr/local目录类似于windows系统的C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。

mkdir /usr/local/frp

将frp_0.44.0_linux_amd64移动到 /usr/local/frp 里面

mv ./frp_0.51.3_linux_386/* /usr/local/frp/

最终如下

配置软件

服务端配置文件:frps.ini

[common]
bind_port = 7000
vhost_http_port = 7003

【bind_port】:frp server 绑定的端口
【vhost_http_port】:设置 http 访问端口

启动

./frps -c frps.ini 

frp客户端

我的服务端在windows上,当然有的人服务端可能在安卓上、ios上或者linux上都有可能

下载软件包

配置软件

客户端配置文件:frps.ini

[common]
server_addr = xx.xx.xx.xx(你服务器ip)
server_port = 7000
vhost_http_port = 7003


[web]
type = http
local_ip = 0.0.0.0
local_port = 8888
custom_domains = xxx.com(你的域名或对应的ip)

【server_addr】:frps云服务的公网ip地址,这里的47.99.x.x是我购买的云服务器ECS的公网ip
【server_port】:frps云服务的端口
【vhost_http_port 】: frps云服务中 设置的 http 访问端口

【type】:请求类型,建议用http,https需要证书。
【local_port】:本地服务器需要暴露到公网上的服务端口(即本地http端口)
【custom_domains】:自定义域名。必须设置。建议新手先直接用ip。设置成功之后再改域名。用域名的话还需要配置域名解析和域名

启动

进入软件包中,使用命令行工具打开(比如cmd或powershell)

.\frpc.exe -c .\frpc.ini

成果

启动一个端口为8888的http服务

然后使用公网访问试试

参考

https://zhuanlan.zhihu.com/p/632560790
https://blog.csdn.net/weixin_43906500/article/details/116403724
https://zhuanlan.zhihu.com/p/612377399?utm_id=0