如果你家里有一台黑群晖,想在外面也能访问。但大家也知道公网 IPv4 地址现在已经所剩无几了,网络运营商一般是不会给你公网 IPv4 地址的。当然,你也可以使用第三方的内网穿透(比如花生壳),如果实在受不了长长的二级域名 + 长长的端口号以及流量的限制,可以采用自建内网穿透方案。
如果需要自建内网穿透,前提是你首先需要有准备一台 VPS 服务器。有一定基础的人可以阅读 frp中文文档 操作。喜欢折腾的朋友也可以长期关注我的博客。
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
1. 首先 SSH 登录到你的 VPS, 找到 home 文件夹
cd /home
2. 然后建立一个 frp 的文件夹用来存放 frp 的服务端
mkdir frp
3. 下载脚本
wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
4. 修改权限
chmod 700 ./install-frps.sh
5. 开始安装
./install-frps.sh install
6. 脚本运行后,你会进入到如下画面,[1]是从阿里云下载,[2]是从 github 下载。我选择 [2] 从 github 下载。
7. 然后你会进入到配置界面,以下是相关的配置参数,大家可根据自己需求修改:
Please input frps bind_port [1-65535](Default Server Port: 5443):
#输入 frp 提供服务的端口,用于服务器端和客户端通信,按 Enter 键表示默认 5443,否则手动输入新端口
Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80):
#输入 frp 进行 http 穿透的 http 服务端口,按 Enter 键表示默认 80,否则手动输入新端口,一般不建议默认 80
Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443):
#输入 frp 进行 https 穿透的 https 服务端口,按 Enter 键表示默认 443,否则手动输入新端口
Please input frps dashboard_port [1-65535](Default dashboard_port: 6443):
#输入 frp 的控制台服务端口,用于查看 frp 工作状态,按 Enter 键表示默认 6443,否则手动输入新端口
Please input dashboard_user (Default: admin):
#输入 frp 提供服务端的账户
Please input dashboard_pwd (Default: H5sBmmId):
#输入 frp 提供服务端的密码
Please input privilege_token (Default: WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq):
#输入 frp 服务器和客户端通信的密码,默认是随机生成的,按 Enter 键表示按默认来,否则手动输入。frpc 客户端需要这个接头暗号
Please input frps max_pool_count [1-200](Default max_pool_count: 50):
#设置每个代理可以创建的连接池上限,默认 50
Please select log_level #####
1: info
2: warn
3: error
4: debug
#####################################################
Enter your choice (1, 2, 3, 4 or exit. default [1]):
#设置日志等级,4 个选项,默认是 info
Please input frps log_max_days [1-30]
(Default log_max_days: 3 day):
#设置日志保留天数,范围是 1 到 30 天,默认保留 3 天。##### Please select log_file #####
1: enable
2: disable
#####################################################
Enter your choice (1, 2 or exit. default [1]):
#设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效
8. 配置好以后,脚本会自动下载安装,如果成功,会出现以下界面,以下是我的设置,各位可参考:
Congratulations, frps install completed!
==============================================
You Server IP : *.*.*.* #你的服务器 IP,各不相同
Bind port : 7000
Dashboard port : 7777
vhost http port : 7100
vhost https port: 7200
Privilege token : 123!456
Max Pool count : 50
Log level : info
Log max days : 3
Log file : enable
==============================================
9. 至此,frp 服务端 frps 的安装已经成功,frps 会随服务器自动启动,无需手动设置。
如果你没有出现以上界面,那你需要重新安装。在第 6 步的时候选择另外一个下载源。[1]是从阿里云下载,[2]是从 github 下载。经过测试,我下载阿里云的是安装失败的,选择[2]github 可以安装成功,不知道我是不是个例。如果安装不成功可以反复切换下载源试试。
提示:记得在你的 VPS 服务器里面开放相应端口否则会出现无法访问的情况。不会开放端口的可以安装宝塔面板操作。有的 VPS 还需要在实例管理里面打开端口,根据不同的服务器运营商而定。
此时访问 http:// 你的服务器 IP:7777 端口号 可以查看 frp 各项状态,如下图所示。如果打不开此页面,很可能是服务器的 7777 端口没有开启。
客户端以 Windows 系统为例,路由器或者 NAS 的配置文件都一样,只是操作不一样而已。可以将 windows 的配置直接复制到路由器或 NAS 中使用。一个局域网只需要运行一个客户端即可,无需每台穿透的设置都运行。只需在配置文件中,将需要穿透的设备的 IP 和端口号添加进去即可。
在这里下载客户端。
网盘下载 本站下载
下载后只需要这三个文件即可
以下是客户端配置参数:
[common]
server_addr = *.*.*.* #已安装好 frp 服务端 frps 的服务器 Ip 地址
server_port = 7000 #与之前 frp 服务端的设置保持一致,即 Bind Port
token = ************** #与之前安装服务端时给出的 token 保持一致
pool_count = 5
tcp_mux = true
login_fail_exit = true
protocol = tcp
heartbeat_interval = 10
heartbeat_timeout = 90
[web1]
type = http
local_ip = 192.168.1.1 #表示要穿透的为路由器 IP
local_port = 80
use_encryption = true
use_gzip = true
custom_domains = *.*.* #表示远程访问 192.168.1.1 需要的域名,可以为二级域名。如果没有域名建议提前申请,并指向服务器所在 IP
http_user = *** #可选项,随便填写,表示访问域名时需要用这个用户名验证通过后,才能连接到内网,加了一道防护,更安全
http_pwd = ****** #可选项,随便填写,同上,用户名对应这个密码,输入正确才能连接到内网
[web2]
type = http
local_ip = 192.168.1.4 #按需填写,填写需要远程访问的第二个内网设备 IP
local_port = 80
use_encryption = true
use_gzip = true
custom_domains = *.*.* #表示远程访问 192.168.1.4 需要的域名,需要与上文的域名有所区别
http_user = *** #可选项,用户名
http_pwd = ****** #可选项,用户密码
[RDP3389]
type = tcp
local_ip = 192.168.1.2
local_port = 3389
remote_port = 5389
[smb]
type = tcp
local_ip = 192.168.1.3
local_port = 445
remote_port = 10000
log_file = /dev/null
log_level = info
log_max_days = 3
设置好以后,需要将配置文件中设置的域名 A 记录解析到你的 VPS 服务器 IP 上。
启动客户端:在 frpc 文件目录按住shift 点击 在此处打开命令行窗口,运行以下代码即可
./frpc -c frpc.ini
客户端运行后,在 http:// 你的服务器 IP:7777 界面的 Proxies 里面就能看到相应连接了:
如何访问内网设备,打开浏览器输入 http:// 配置文件里面的域名:7100 端口号,即可访问。
到此,你的内网穿透就已经成功了,快去试试吧!