小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透

有轱辘的才是车 NAS评论76,187字数 3765阅读12分33秒阅读模式

对于没有公网IP地址,家里又有NAS之类的需要外网访问需求的可以实现的方法虽然有很多种,但是frp内网穿透是比较好的选择。

第一种方法是花生壳:花生壳虽然有免费的,但是免费的带宽只有1M,流量只有1G,而且只能映射两个端口,如果想增加端口,增加流量那也是要花钱的,而且费用也是比较高的。

第二种方法:群晖或者威联通之类自带的DDNS服务,虽然说这个没有端口没有流量的限制,但是速度是个问题。而且很多的黑群晖、黑威联通之类的根本没有办法使用。

第三种方法:这是我在研究内网穿透的时候发现的,那就是frp服务。而且frp这个软件是免费的,但是我在搭建的走了很多弯路,看了很多的文章最终搭建成功,现在将我的历程写下来供大家参考。

搭建frp服务器

这个是我在NAS云论坛里面看到了,别人写的有些地方说的不是很清楚,

相关文件:https://u16883951.ctfile.com/dir/16883951-32175217-2de4e3/

1、frps服务器搭建

下载如下文件,我下载的是0.23.2版本,根据自己的情况下载

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
服务器下载文件

解压出来,用winscp将里面frps文件夹拷贝至服务器的\usr\bin\文件夹下面

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
frps上传至服务器中

给frps文件夹赋予0755权限

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
frps文件夹赋予0755权限

服务器段代码如下,文本部分我只截取了有用的部分,完整部分我也截图放在下面了。

  1. [common]
  2. bind_addr = 0.0.0.0
  3. # 上面这一行不要修改,就用默认的,我当时看别的文章说改为自己的服务器IP地址,结果一直有问题,这个就用默认的就可以了
  4. bind_port = 7000
  5. # 这个是客户端和服务器端连接的端口,根据自己的情况进行修改,记得将服务器的这个端口放行。
  6. bind_udp_port = 7001
  7. kcp_bind_port = 7000
  8. dashboard_addr = 0.0.0.0
  9. dashboard_port = 7500
  10. dashboard_user = admin
  11. dashboard_pwd = admin
  12. #上面四行是服务器后台的管理地址、端口、账号、用户名,服务地址不用修改,端口、账号、密码根据自己的情况进行修改,记得服务器放行该端口
  13. log_file = /usr/bin/frps/frps.log
  14. # 这个是服务器的日子文件存放位置,可以自定义修改
  15. log_level = info
  16. log_max_days = 3
  17. #上面是日志保存的天数,自行修改
  18. token = 123456
  19. #这个是客户端和服务器端连接的密码,自行修改
  20. max_pool_count = 10
  21. #最大连接池数量,可以修改
  22. max_ports_per_client = 0
  23. tcp_mux = true
小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
这是详细的代码,文本部分我是截取了需要的部分

将解压缩出来的etc文件夹下的启动脚本frps文件用winscp上传至服务器的\etc\init.d\文件夹下面。并赋予0755权限

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
frps启动脚本上传至服务器/etc/init.d/文件夹下面
小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
赋予frps启动脚本0755权限

启动frps服务:在代码环境下输入下列命令:/etc/init.d/frps start,会提示Starting frps success,至此服务器就启动完毕,如果要停止服务器重启服务器,将start更换为stop和restar即可。服务器启动成功后,浏览器地址栏输入服务器ip:后台管理端口号,输入你设置的后台管理账号和密码得到如下界面。

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
服务器启动成功后的后台管理界面

设置服务器开机自启动该服务。有些文章里面写的是使用 chkconfig ,ubuntu新版本中已经没有这个命令,被 sysv-rc-conf替代 ,需要先安装此命令

  1. apt-get install sysv-rc-conf

将frps服务加入自启动行列

  1. sysv-rc-conf frps on

在执行上面的命令之前,现在命令行里面进入该服务所在文件夹/etc/init.d/里面再执行,或者这里输入完整的路径

至此服务器就搭建完毕

原作者还加了如何部署SSL证书,感兴趣的可以自己去琢磨一下:http://www.nasyun.com/thread-64353-1-2.html

2、客户端配置

客户端代码如下,文本部分我节选了有用的部分,完整的代码我截图在下面。客户端里面设置的端口记得在服务器里面将端口开放

  1. [common]
  2. server_addr = 0.0.0.0
  3. #这里是你服务器的外网IP地址,自行修改
  4. server_port = 7000
  5. #服务器设置的客户端连接端口
  6. log_file = /usr/local/frpc/var/frpc.log
  7. #这里是客户端日志存放的位置,这个一定要修改好,最好和你的配置文件在同一个文件夹 ,我当时用的默认的没有修改,导致日志保存失败,一直没有找到连不上的原因
  8. log_level = info
  9. log_max_days = 3
  10. #客户端日志保存类型和天数
  11. token = 123456
  12. #服务器连接密码,这个和服务器端的设置一样
  13. admin_addr = 127.0.0.1
  14. admin_port = 7400
  15. admin_user = admin
  16. admin_pwd = admin
  17. #以上四行是客户端后台挂历地址、端口、账号、密码,可以不修改
  18. pool_count = 10
  19. #连接池数量,和服务器端设置一样
  20. tcp_mux = true
  21. login_fail_exit = true
  22. protocol = tcp
  23.  
  24. [dssh]
  25. type = tcp
  26. #因为服务器断端的http没有设置,这里连接类型就选择TCP,否则会连不上
  27. local_ip = 192.168.2.117
  28. #这里是需要访问服务的设备IP地址
  29. local_port = 22
  30. #这里是需要访问服务的设备的端口号
  31. remote_port = 6022
  32. #这是外网访问的端口号,服务器IP加这个端口就可以访问了
  33. subdomain = dssh
  34.  
  35. [dsweb]
  36. type = tcp
  37. local_ip = 192.168.2.117
  38. local_port = 5000
  39. remote_port = 5000
  40. subdomain = dsweb
  41.  
  42. [tpweb]
  43. type = tcp
  44. local_ip = 192.168.2.1
  45. local_port = 80
  46. remote_port = 6080
  47. subdomain = tpweb
  48. #前面两个是我的群晖的访问地址,这个是我的家里的主路由器的访问地址,这样在外面我就可以控制我家里的路由器了。
小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
客户端完整代码

客户端的配置文件就介绍到这里,现在大家根据自己的情况选择客户端,如果是电脑,在官网下载对应版本https://github.com/fatedier/frp/releases,客户端的版本要和服务器的版本一致,否则有些时候会连接不上,记得 将客户端配置文件和客户端自行文件放在同一个文件夹。如果是群晖可以下载大侠提供的套件,直接安装就可以了。安装好之后,第一次服务是没有办法启动的,因为对位置文件进行修改。群晖利用winscp将配置文件上传至群晖的/volume1/@appstore/frpc/var/文件夹下面,如果你的群晖设置的安装套件的硬盘不同,在前面的硬盘这里可能会有所差别。

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
群晖客户端配置文件上传目录

启动frpc套件

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
启动套件

查看日志,里面有success就是启动成功了,查看服务器的后台管理端,应该显示在线了。

2019/02/16 15:11:50 [I] [service.go:206] login to server success, get run id [3bbe91d590baa750], server udp port [7001]
2019/02/16 15:11:50 [I] [proxy_manager.go:137] [3bbe91d590baa750] proxy added: [bdy ts tpweb dsphoto dssh dsweb rr qnweb]
2019/02/16 15:11:50 [I] [service.go:100] admin server listen on 127.0.0.1:7400
2019/02/16 15:11:50 [W] [control.go:141] [bdy] start proxy success
2019/02/16 15:11:50 [W] [control.go:141] [ts] start proxy success
2019/02/16 15:11:50 [W] [control.go:141] [tpweb] start proxy success
2019/02/16 15:11:50 [W] [control.go:141] [dsphoto] start proxy success
2019/02/16 15:11:50 [W] [control.go:141] [dssh] start proxy success
2019/02/16 15:11:50 [W] [control.go:141] [dsweb] start proxy success
2019/02/16 15:11:50 [W] [control.go:141] [rr] start proxy success
2019/02/16 15:11:50 [W] [control.go:141] [qnweb] start proxy success

小白阿里云Ubuntu 16.04搭建frp服务器实现群晖内网穿透
客户端连接上服务器端,显示online

至此服务端可客户端的搭建都完成了,希望大家可以举一反三

文章末尾固定信息
NAS最后更新:2024-1-7
  • 本文由 发表于 2019年2月16日 15:19:22
  • 本站文章部分转载至网络,如有侵权,请联系删除
评论  0  访客  0

发表评论