IT男的VPS系列教程 篇六:利用Docker搭建FRP内网穿透

2018-10-12 21:15:00 51点赞 563收藏 29评论

去年的时候,我曾经写过一篇关于内网穿透的文章。

IT男的VPS系列教程 篇一:内网穿透(Frp)-拯救没有公网IP的你一、概述本文是一个偏技术类的文章,针对的人群未接触过该领域的小白。虽然说是技术类文章,但难度并不高,我也是一个管理专业出身现学现卖的。看看张大妈这里这类的文章还真的不多,因此抛砖引玉。文章是一个系列教程,由于脑子里构思的内容太多,一次性实在没有动力写完,所以做成了系列。什么是VPS?VPS(Virt化名叡阡千| 660 评论468 收藏5k查看详情


一年过去了,不断的有人咨询我关于使用的问题,而且我发现用这个的人也是越来越多,能问运营商要到公网IP的几率越来越小。我用的移动宽带,客服都直接回复,我们不提供公网IP。另外作者对frp也更新了很多,所以今天想再更新一下关于FRP,来张大妈骗点金币吧。

特别是在路由器、NAS没有公网IP是一件很不方便的事情,尤其是在国内的网络环境。为了解决这个问题,则需要内网穿透,而内网穿透的方法有很多种,例如使用花生壳、NGROK等,但是我感觉frp是相对更为稳定。

frp是什么

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

说白了,就是利用一台有公网IP的机子,实现访问你家没有公网IP的设备。

在我使用过的穿透软件中,感觉frp在稳定性、功能和维护方面做得比较好,我也稳定使用了快2年了。

准备工具

从上面的内网穿透的原理可以看出,我么至少需要一台有公网IP的主机,目前来看VPS是最好的选择,以及一个域名。

关于VPS用法、域名购买以及有关工具在我过去的文章中已经详细的说明了。如果对VPS有不明白的地方可以看一下教程 由于我今天只想说说FRP,所以就不赘述了。

域名一定要做泛解析,有时容易忽视这里。不论是二级域名还是三级域名,都可以做泛解析。比如我f.anys.ga做域名泛解析,填入*.f就可以吧*.f.anys.ga进行解析。

利用Docker搭建FRP内网穿透


FRP服务端搭建

利用docker

我选择了Docker方式,好处在于十分方便,容易部署,沙盒机制可以不破坏系统环境。最近docker用的多了感觉十分非常顺手,如果你不喜欢docker可以自行研究。

搭建服务端

我的OS是Ubuntu14.04 x64。首先安装Docker,这里不推荐apt-get 或者yum的形式安装,建议直接从官网下载docker。如果你不关心Docker是什么,那么你也不用深究,如果你有兴趣研究一下,可以自行google。

#安装Docker
wget -qO- https://get.docker.com/ | sh

#在宿主机建立目录
mkdir /var/frp && mkdir /var/frp/conf &&cd /var/frp/conf

#获取服务器端配置文件
wget https://frp.anys.ga/frps.ini

利用Docker搭建FRP内网穿透

#建立镜像
sudo docker run --name frps -d -v /var/frp/conf:/var/frp/conf -p 5000-5100:5000-5100 -p 7000:7000 -p 7500:7500 -p 7001:7001 -p 8089:80 -p 8443:443 ruiny/frps

利用Docker搭建FRP内网穿透

这样服务器就搭建好了。按照以上配置完成的话,服务端口7000,状态查询(web)端口7500,http服务端口8089,https端口为8443,同时开放5000-5100端口用于其他TCP/UDP连接。

之所以用8089/8443端口是因为本机上的80/443端口用给Nginx了,如果你们确保端口没冲突的话可以用80/443端口。(有些强迫症患者只用80端口)

之后登陆你VPS地址IP地址:7500可以查询具体状态,用户名/密码为admin/Qwert123。

利用Docker搭建FRP内网穿透

配置文档修改

好了,如果实在懒得动配置,上面的可以正常使用,但一般总要改一下密码什么的吧。我在制作镜像的时候,把配置文件放在了/var/frp/conf下,在上面过去服务器配置的时候,我直接用了作者的官方配置,很多配置是不合适的,如果需要更改:

nano /var/frp/conf/frps.ini

至少你应该修改以下几项内容:(ctrl+x保存,或者习惯用vi编辑器的)

#设置用户名和密码,注意是状态面板的用户名和密码。
dashboard_user = admin
dashboard_pwd = admin

#令牌,很重要,用于验证与客户端的通信。
token = 12345678
#自定义二级域名,如果设置了,之后在客户端的http、https类型的代理中可以不配置custom_domains,而是配置一个 subdomain 参数。可以不配置,默认没有配置。
subdomain_host = frps.com

我只开放了5000-5100用于TCP/UDP端口,如果需要更多端口请修改以下内容。但同时docker run中也要修改-p 5000-5100:5000-5100的端口范围。我测试,如果一次性开放端口过多,会导致docker卡死,所以不建议开太多哦。

# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
allow_ports = 5000-5100


FRP客户端配置

不论是梅林、老毛子或者是群晖,在frp客户端中的设置都大同小异,但是我一般喜欢用配置文档的方式,简单说说配置文档。完整的客户端配置模板可以在查看

配置文档

配置文档分为两部分,第一部分是common开头的通用配置,第二部分就是每个穿透服务项目

利用Docker搭建FRP内网穿透

下面将几个例子:

1.主路由web界面

[router] #主路由web界面
type = http #穿透类别为http
local_ip = 192.168.1.1 #内网地址
local_port = 80 #穿透服务内网端口
remote_port = 8089
custom_domains = router.f.anys.ga #外网域名
use_encryption = true #开启加密
use_compression = true #开启压缩

在梅林的界面中对应内容如下:

利用Docker搭建FRP内网穿透

2.GEN8中window的远程桌面

[Gen8-Winser]
type = tcp #类别为tcp
local_ip = 192.168.1.5 内网Gen8的ip地址
local_port = 3389 #注意穿透端口是远程桌面的端口3389
remote_port = 5000 #外网端口随便填一个吧
use_encryption = true
use_compression = true

由于是tcp所以这里不需要外网域名了,这个就类似于端口转发。

利用Docker搭建FRP内网穿透

3.DSM黑群晖

[dsm]
type = https #黑群晖DSM的web用https,所以类别是https
local_ip = 192.168.1.7 #黑群晖的地址
local_port = 5001 #群晖的https端口是5001
remote_port = 8443 #外网https端口对应是8443
custom_domains = dsm.f.anys.ga
use_encryption = true
use_compression = true

我黑群晖的内网地址是192.168.1.7,https端口是8443,对应访问域名就是dsm.f.anys.ga:8443。对于https的穿透,需要导入相应证书,否则不会有小绿锁哒~

利用Docker搭建FRP内网穿透

群晖和梅林都有导入的地方,比如群晖在这里:

利用Docker搭建FRP内网穿透

frp的作者还搞了一些高级用法,特殊情况可以尝试用一下:

4.转发 DNS 查询请求

可以通过frp转发自己的DSN请求,在客户端配置文件中设置。将DNS请求转发到google的8.8.8.8

[dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6000

5.stcp 类型的代理

stcp利用了一个sk验证,使得只有sk一直的两个客户端能够点对点互访,防止公网上的随意访问。

家里的路由器:

[secret_ssh]
type = stcp #类型是stcp
sk = router1 # 只有 sk 一致的用户才能访问到此服务
local_ip = 192.168.1.1
local_port = 22

另外一台PC:

[secret_ssh_visitor]
type = stcp
role = visitor # 访问者
server_name = secret_ssh # 对应穿透服务的名称与上面一直
sk = router1 # 只有 sk 一致的用户才能访问到此服务
bind_addr = 127.0.0.1
bind_port = 8022 # 绑定本地的端口

在本地访问ssh,地址127.0.0.1,端口8022就会穿透到家里的路由器22端口。

利用Docker搭建FRP内网穿透


测试

一个不知道什么时候就会消失的测试服务器,注意人多容易重名,不要当作正式用途。

Web地址:网址 admin/Qwert123
FRP服务地址:f.anys.ga:7000
token:f.anys.ga
TCP/UDP端口:8089,443, 5000-5100
三级域名 *.f.anys.ga

其它问题

1.修改frps.ini后需要重新启动容器 docker restart frps

2.服务器端只适用于64位的系统

3.0.17以后的版本和之前的不兼容,注意客户端和服务器版本一致

4.由于frp是封装在docker里面运行的,如果要讨论效率的话我不好说。

说真的FRP真的很好用,之前用Vultr做服务器的时候,带宽足够可以在线看家里NAS的视频,而且非常稳定,不论是客户端还是服务端都很稳,基本不用操心。

展开 收起

思科Cisco Catalyst 1200-16P-2G 120W PoE 千兆智能交换机

思科Cisco Catalyst 1200-16P-2G 120W PoE 千兆智能交换机

暂无报价

领势(LINKSYS)MX5501高速5G双频AX5400M全屋WIFI6千兆路由器智能组网家用穿墙王 MX5501单支装|全新独立密封包装

领势(LINKSYS)MX5501高速5G双频AX5400M全屋WIFI6千兆路由器智能组网家用穿墙王 MX5501单支装|全新独立密封包装

689元起

JDRead 随身wifi免插卡移动wifi6无线上网卡随行4G路由器车载电脑手机宽带流量卡 充电款

JDRead 随身wifi免插卡移动wifi6无线上网卡随行4G路由器车载电脑手机宽带流量卡 充电款

35元起

毕亚兹 超五类室外网线 户外防水抗晒耐寒 支持摄像头监控带POE供电cat5e类非屏蔽 100米 监控网线

毕亚兹 超五类室外网线 户外防水抗晒耐寒 支持摄像头监控带POE供电cat5e类非屏蔽 100米 监控网线

179.1元起

神盾卫士(SDWS)多媒体监控制机房操作台指挥调度台工控台中心视频控制监控桌播音桌讲台2联ST-A20C8

神盾卫士(SDWS)多媒体监控制机房操作台指挥调度台工控台中心视频控制监控桌播音桌讲台2联ST-A20C8

4380元起

COMFAST2.5G电竞千兆免驱动有线网卡2500M台式机pcie插口电脑主机机箱内置插网线接入口自适应网络适配器

COMFAST2.5G电竞千兆免驱动有线网卡2500M台式机pcie插口电脑主机机箱内置插网线接入口自适应网络适配器

暂无报价

贝锐蒲公英X5Pro路由器AX3000企业级异地组网千兆双频2.5G双WAN口5G无线WiFi6覆盖USB办公商用远程访问内网

贝锐蒲公英X5Pro路由器AX3000企业级异地组网千兆双频2.5G双WAN口5G无线WiFi6覆盖USB办公商用远程访问内网

499元起

FISUSEN 飞速讯N6000终于上架了,赶紧撸,还有N5100等

FISUSEN 飞速讯N6000终于上架了,赶紧撸,还有N5100等

459元起

ZTE 中兴 星云系列 晴天PoE全屋路由 1母2子套装 Wi-Fi 6

ZTE 中兴 星云系列 晴天PoE全屋路由 1母2子套装 Wi-Fi 6

699元起

清梅 随身wifi移动无线wifi6纯流量上网卡无限流量免插卡三网通5G路由宽带车载wi-fi适用于4G

清梅 随身wifi移动无线wifi6纯流量上网卡无限流量免插卡三网通5G路由宽带车载wi-fi适用于4G

6.49元起

网惠宝可移动随身wifi路由器免插卡全网通移动wifi6便携式随身无线wifi6全国通用2024款车载4g网卡三网通 版双频wifi6【16核8天线】机卡一体

网惠宝可移动随身wifi路由器免插卡全网通移动wifi6便携式随身无线wifi6全国通用2024款车载4g网卡三网通 版双频wifi6【16核8天线】机卡一体

34.65元起

华为智选 移动随行Wi-Fi mini 天际通版 E8372-821 华为智选

华为智选 移动随行Wi-Fi mini 天际通版 E8372-821 华为智选

95元起

胜蝶20245G随身wifi6免插卡移动网通用网卡便携式4G5G路由器无线wifi5G通用流量 【网速达300M+5000mAh大电池】

胜蝶20245G随身wifi6免插卡移动网通用网卡便携式4G5G路由器无线wifi5G通用流量 【网速达300M+5000mAh大电池】

148元起

EB-LINK PCIE无线网卡延长天线底座WIFI双频2.4G/5G天线路由器SMA高增益6DB一体式【不可拆 】2米

EB-LINK PCIE无线网卡延长天线底座WIFI双频2.4G/5G天线路由器SMA高增益6DB一体式【不可拆 】2米

59元起

新讯随身移动无线wifi网卡|无需预存|免插卡4g便携充电宝式车载宿舍笔记本台式电脑全网高速流量上网 高速畅享【升级WIFI6+超长续航+18W快充】

新讯随身移动无线wifi网卡|无需预存|免插卡4g便携充电宝式车载宿舍笔记本台式电脑全网高速流量上网 高速畅享【升级WIFI6+超长续航+18W快充】

59元起

迈云达N100 N305全铝迷你主机 NAS 快拆4盘位M.2固态硬盘2.5G软路由M1 Mini 全闪

迈云达N100 N305全铝迷你主机 NAS 快拆4盘位M.2固态硬盘2.5G软路由M1 Mini 全闪

1380元起
29评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
563
扫一下,分享更方便,购买更轻松