使用frp搭建内网穿透服务心得

发布于 2023-07-15  167 次阅读


折腾了一两天,总算是成功部署了一个属于自己的内网穿透服务……

之前使用的是natapp,一个月10块钱还限速,现在用自己的服务器不仅不限速还能随便用,太爽了)

使用的服务器系统是centos7.9,客户端是windows10,服务端需要带公网IP,简单整理一下过程:

frp在github上开源,首先去releases界面上下载:releases链接


服务端-frps

下载好的包解压缩放到服务器上,解压出来的内容分为主要两个部分:frps和frpc

其中frps用于服务端,frpc用于客户端,只保留需要的,其余删掉即可

首先设置frps.ini中的内容:

[common]
bind_port = 7000
#这是必须设置的端口,之后客户端连接到服务端就用此端口,可自己更改
kcp_bind_port = 7000
#可以不设置,我这里开启了kep加速才使用的,端口可以和上面的一样
authentication_method = token
token = 123456
#这个是设置加密密钥,可以自己改,建议设置,否则谁都能使用你的内网穿透服务器
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
#这个是设置服务端管理页面的,从上到下依次是地址,端口,账号,密码,可自己更改
vhost_http_port = 81
vhost_https_port = 444
#这两个是设置http和https端口的,因为我有安装宝塔,正常http和https端口80和443已经被占用,因此在这里使用别的端口代替,之后使用宝塔反向代理,后面会提到

使用如下命令启动服务端

./frps -c frps.ini

看到如“frps started successfully”字样的时候表示启动成功,这时候你可以访问你设置的管理页面,进入 服务器的公网IP:设置的管理页面端口,没有问题的话就能看到文章开头的图片所示内容


客户端-frpc

客户端如同服务端一样,不需要frps相关的文件,带frps字样的都可以删除,保留带frpc的

然后开始设置frpc.ini的内容

[common]
server_addr = 72.44.77.133
server_port = 7001
#这里是基础设置,填上服务器的公网IP,以及连接到frps的端口,这个端口就是frps.ini中最开始设置的
token = 123456
#连接服务器的密钥,与frps.ini中设置的一直
protocol = kcp
#可以不用管,这里是我开启kcp加速才加的

[ssh]
#[ssh]只是命名作用,可以自己改成别的[test]之类
type = tcp

#type中填写通讯类型,可以为tcp,http,https等
local_ip = 127.0.0.1
local_port = 22

#填入本机要开放的端口
remote_port = 6000
#填入服务器中对应的端口

[web]
type = http
local_ip = 127.0.0.1
local_port = 6789
custom_domains = example.com
#这里和上面一样,不同的是custom_domains,用于设置网页访问的域名,需要先解析到服务器的公网IP上,没有的话可以直接填服务器的公网IP

此时就可以打开frpc试试看了,注意frpc.exe直接运行没有用,需要使用cmd运行

这里可以先创建一个start.bat,内容如下:

@echo off
:home
frpc -c frpc.ini
goto home

接着启动即可,如果正常的话能看到success等字样,你也能在服务器的管理页面上看到对应类型的连接

到此即可结束,可以根据frp文档进行自定义设置或者拓展功能:中文文档


使用宝塔反向代理

如果你想使用内网穿透将本地的网站开放到外网,且80/443端口被占用因而替换成其他端口,就需要使用宝塔的反向代理了,这里以我http设置成的81端口为例

在宝塔面板中新建一个网站,域名使用你在frpc.ini中custom_domains设置的域名

之后点击创建,打开网站设置,找到反向代理,添加

添加的反向代理为 服务器的公网ip:81

添加完后访问域名即可看到你的网页


遇到的问题-解决方法

正常经过上面的步骤差不多就能使用了,但是我遇到过一些问题

· 打不开服务端管理页面

不知为何,将服务端frps.ini中的dashboard_addr设置为127.0.0.1后访问管理页面显示连接被拒绝

而改成0.0.0.0后就能正常访问

· 客户端连接不上服务器

最开始搭建好服务器后立刻使用客户端进行测试,但是怎么都显示连接超时,无法连接上

去网上查了一些资料后发现是服务器没开放对应端口导致

如果是腾讯云阿里云之类国内云服务器商,需要去对应的安全组开放端口

我的服务器是国外云服务器商,需要在系统内自行开启

centos开启对应端口的代码如下,里面的端口数值改成你需要的即可

firewall-cmd --add-port=10000-20000/tcp --permanent
firewall-cmd --reload

我后面开启了kcp加速,而我的服务器有安装宝塔面板,宝塔面板默认关闭kcp端口,也是需要如上代码所示开启,将tcp换成kcp即可


总结

总体上来说使用frp搭建内网穿透并不难,只是需要注意的地方有不少

搭建前先了解学习对应的知识,可以让搭建过程更轻松些


“Determination”