如果你家里有一台黑群晖,想在外面也能访问。但大家也知道公网 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 下载。
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 和端口号添加进去即可。
在这里下载客户端。
下载后只需要这三个文件即可
- 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 里面就能看到相应连接了:
如何访问内网设备,打开浏览器输入 http:// 配置文件里面的域名:7100 端口号,即可访问。
到此,你的内网穿透就已经成功了,快去试试吧!
原文链接:https://blog.csdn.net/m0_74876753/article/details/127819839