VPS自己搭建frp/frps内网穿透实现外网访问局域网设备

如果你家里有一台黑群晖,想在外面也能访问。但大家也知道公网 IPv4 地址现在已经所剩无几了,网络运营商一般是不会给你公网 IPv4 地址的。当然,你也可以使用第三方的内网穿透(比如花生壳),如果实在受不了长长的二级域名 + 长长的端口号以及流量的限制,可以采用自建内网穿透方案。


如果需要自建内网穿透,前提是你首先需要有准备一台 VPS 服务器。有一定基础的人可以阅读 frp中文文档 操作。喜欢折腾的朋友也可以长期关注我的博客。

什么是 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 下载。

VPS自己搭建frp/frps内网穿透实现外网访问局域网设备_第1张图片 

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自己搭建frp/frps内网穿透实现外网访问局域网设备_第2张图片

提示:记得在你的 VPS 服务器里面开放相应端口否则会出现无法访问的情况。不会开放端口的可以安装宝塔面板操作。有的 VPS 还需要在实例管理里面打开端口,根据不同的服务器运营商而定。

此时访问 http:// 你的服务器 IP:7777 端口号 可以查看 frp 各项状态,如下图所示。如果打不开此页面,很可能是服务器的 7777 端口没有开启。

VPS自己搭建frp/frps内网穿透实现外网访问局域网设备_第3张图片

客户端使用

客户端以 Windows 系统为例,路由器或者 NAS 的配置文件都一样,只是操作不一样而已。可以将 windows 的配置直接复制到路由器或 NAS 中使用。一个局域网只需要运行一个客户端即可,无需每台穿透的设置都运行。只需在配置文件中,将需要穿透的设备的 IP 和端口号添加进去即可。

在这里下载客户端。 

网盘下载       本站下载

下载后只需要这三个文件即可

  • frpc.exe
  • frpc.ini
  • frpc_full.ini

以下是客户端配置参数:

[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 里面就能看到相应连接了:

VPS自己搭建frp/frps内网穿透实现外网访问局域网设备_第4张图片

如何访问内网设备,打开浏览器输入 http:// 配置文件里面的域名:7100 端口号,即可访问。

VPS自己搭建frp/frps内网穿透实现外网访问局域网设备_第5张图片 

到此,你的内网穿透就已经成功了,快去试试吧!

你可能感兴趣的:(服务器,网络)