-毕嘉峰电脑技术论坛-实践才是真理,期待你的分享!-

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

360生活圈-淘宝购物更省钱!
搜索
热搜: 系统 活动 注册
查看: 887|回复: 1

[分享] frp内网穿透技术分享 centos搭建frp服务器 群晖NAS内网穿透

[复制链接]

签到天数: 24 天

[LV.4]偶尔看看III

发表于 2019-4-11 16:26:07 | 显示全部楼层 |阅读模式

访客您好,登录后可看更多精彩内容!发帖、回复积分还可换实物奖品哦,还在犹豫什么,赶紧注册登录吧!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 bijiafeng 于 2019-4-14 10:44 编辑

今日家里电脑数据仓库的一块硬盘出现了问题,需要更换。这个数据仓库还是很久之前用IT盘做的mirror,坏了一块数据还在。本来想添几块3T的重新组建raid5存储池,但不想在电脑中做了,每次开机这些盘都会加电,费电噪音还大。平时也就看个电影听听歌,所以计划买个群晖家庭NAS,经过踩点发现群晖.....不(价)太(格)合(太)适(美),所以先用黑群晖体验体验。
黑群晖和白群晖主要的区别就是外网访问功能,花生壳之类的DDNS都要花费,想免费就得自己搭建。我用过免费开源的内网穿透有frp和Ngrok。今天的教程是针对frp来写的。


说了一堆废话!干货开始!
一、准备
首先需要准备如下信息:
1.阿里云ECS,无论是Windows版本或者Linux版本均可,本篇教程是以CentOS7来实验的。当然其他云的VPS也是可以的,国内的价格高但速度较快,国外的便宜但相对网速较慢。购买阿里云ECS链接:先看看有没有优惠信息再买!       资金充足点这个链接
2.域名,没有域名的话就得用ECS服务器IP地址来访问了。域名注册严重建议使用阿里云的,别问为什么,经验和教训!
3.下载FRP配置文件:点击下载   我服务器是CentOS 64的,所以下载 frp_0.26.0_linux_amd64.tar.gz 这个
4.winscp软件上传下载方便,没有也可以,大不了wget下。

二、FRP服务端配置


1.通过ssh登陆阿里云ECS
1.png



2.wget下载frp配置文件,首先创建一个文件夹存放frp文件

  1. mkdir /var/www/html/frp
  2. cd /var/www/html/frp/
  3. wget href="https://github.com/fatedier/frp/releases/download/v0.26.0/frp_0.26.0_linux_amd64.tar.gz">https://github.com/fatedier/frp/releases/download/v0.26.0/frp_0.26.0_linux_amd64.tar.gz
复制代码

2.png
其实很小的文件,但是下载比较慢,耐心等待.....

3.解压文件

tar -zxvf frp_0.26.0_linux_amd64.tar.gz
3.png

4.这里我们其实只需要frps和frps.ini,frpc是客户端要用的
4.png


5.修改frps.ini,添加如下内容
5.png


6.启动服务

./frps -c frps.ini
6.png

注意:
1.设置开机自启
添加frps服务

vi /lib/systemd/system/frps.service
配置服务脚本


  1. [Unit]
  2. Description=fraps service
  3. After=network.target syslog.target
  4. Wants=network.target

  5. [Service]
  6. Type=simple
  7. #启动服务的命令(填写frps的实际安装目录)
  8. ExecStart=/var/www/html/frp/frps -c /var/www/html/frp/frps.ini

  9. [Install]
  10. WantedBy=multi-user.target
复制代码
启动服务
  1. sudo systemctl start frps
  2. sudo systemctl enable frps
复制代码

2.设置阿里云实例防火墙规则
aliyun.png
3.关闭阿里云ECS防火墙
ecsfirewall.png

三、配置客户端


7.修改frpc.ini,如下图
7.png


8.上传frpc.ini到群晖系统。首先启用群晖家目录和ssh登陆
8.png


9.通过ssh登陆群晖系统,在/usr/local/创建frp目录,上传frpc和frpc.ini到该目录
9.png


10.群晖设置开机启动frp,创建启动脚本
vi /usr/syno/etc.defaults/rc.sysv/frp.sh

11.输入以下内容
#/bin/bash
cd /usr/local/frp
nohup ./frpc -c ./frpc.ini &
11.png

输入:cd /usr/syno/etc.defaults/rc.sysv ,进入文件目录
设置权限:chmod +x frp.sh

12.打开群晖控制面板——计划任务——新增
12.png


13.填入运行的脚本
/usr/syno/etc.defaults/rc.sysv/frp.sh
13.png
至此完成配置!

四、域名解析设置
14.打开阿里云域名解析,添加A记录
14.png


15.等待十分钟左右,解析生效,这时候我们就可以通过域名访问了
15.png

完成所有操作!如有疑问可留言,如有更好建议欢迎交流!







毕嘉峰电脑技术论坛-Bijiafeng.com:论技术分享我们更专业更精确!!

签到天数: 24 天

[LV.4]偶尔看看III

 楼主| 发表于 2019-4-11 16:37:04 | 显示全部楼层
本帖最后由 bijiafeng 于 2019-4-11 16:47 编辑

公网服务器Nginx或Apache反向代理配置
1)Nginx配置,配置完成后重启Nginx服务:service nginx restart
  1. server {
  2.     listen                     80;
  3.     listen                     443 ssl;
  4.     server_name               bijiafeng.com ;
  5.     server_name                *.bijiafeng.com ;
  6.     #不需要开启https请注释或删除以下ssl开头的参数,注意证书路径替换为你自己的,如何通过acme.sh申请免费证书请看我之前写的文章。
  7.     ssl_certificate            /opt/ssl/acme/bijiafeng.com .cer;
  8.     ssl_certificate_key        /opt/ssl/acme/bijiafeng.com .key;
  9.     ssl_ciphers                ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
  10.     ssl_prefer_server_ciphers  on;
  11.     ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
  12.     ssl_session_cache          shared:SSL:5m;
  13.     ssl_session_timeout        5m;</p><p>    #http强制跳转到https,不需要请使用#注释或删除
  14.     if ($scheme = http) {
  15.         return  301 <a href="https://$host$request_uri">https://$host$request_uri</a>;
  16.     }</p><p>    location / {
  17.         proxy_pass             <a href="http://127.0.0.1:8001">http://127.0.0.1:8001</a>;
  18.         proxy_set_header       Host $host:80;
  19.         proxy_set_header       X-Real-IP $remote_addr;
  20.         proxy_set_header       X-Forwarded-For $proxy_add_x_forwarded_for;
  21.         proxy_set_header       Upgrade $http_upgrade;
  22.         proxy_set_header       Connection upgrade;
  23.         proxy_connect_timeout  7d;
  24.         proxy_send_timeout     7d;
  25.         proxy_read_timeout     7d;
  26.     }
  27. }
复制代码

2)Apache配置 ,配置完成后重启Apache服务:service httpd restart

  1. #http站点
  2. <VirtualHost *:80>
  3.     ServerName bijiafeng.com
  4.     ServerAlias *.bijiafeng.com
  5.     ProxyPreserveHost On
  6.     ProxyPass / <a href="http://127.0.0.1:8001/">http://127.0.0.1:8001/</a>
  7.     ProxyPassReverse / <a href="http://127.0.0.1:8001/">http://127.0.0.1:8001/</a>
  8. </VirtualHost>

  9. #https站点,证书路径请替换为自己的,需要强制http跳转https请自行GG。
  10. <VirtualHost *:443>
  11.     ServerName bijiafeng.com
  12.     ServerAlias *.bijiafeng.com
  13.     SSLEngine on
  14.     SSLCertificateFile "/ssl/acme/bijiafeng.com .cer"
  15.     SSLCertificateKeyFile "/ssl/acme/bijiafeng.com .key"
  16.     ProxyPreserveHost On
  17.     ProxyPass / <a href="http://127.0.0.1:8001/">http://127.0.0.1:8001/</a>
  18.     ProxyPassReverse / <a href="http://127.0.0.1:8001/">http://127.0.0.1:8001/</a>
  19. </VirtualHost>
复制代码


3、公网服务器frps配置
1)假设已经在中转机上将frp下载解压到路径/home/frp,以下为frps.ini的配置:
  1. [common]
  2. # frp监听的端口,用作服务端和客户端通信
  3. bind_port = 7000

  4. # 服务端通过此端口接监听和接收公网用户的http请求
  5. vhost_http_port = 8001

  6. # frp提供了一个控制台,可以通过这个端口访问到控制台。可查看frp当前有多少代理连接以及对应的状态
  7. dashboard_port = 7100

  8. # 服务端的subdomain_host需要和客户端配置文件中的subdomain、local_port配合使用,可通过{subdomain}.{subdomain_host}的域名格式来访问自己本地的 web 服务。
  9. # 假如服务端的subdomain_host为bijiafeng.com ,客户端某个配置组中的
  10. # subdomain为a,local_port为8585,
  11. # 则:
  12. # 访问 a.bijiafeng.com ,等同于访问本地的localhost:8585
  13. subdomain_host = bijiafeng.com
复制代码


使用./frps -c frps.ini命令启动服务器监听,注意,关闭终端,服务将停止。
使用nohup ./frps -c frps.ini >/dev/null 2>&1 &命令后台启动服务器监听,此命令运行后关闭终端服务不会停止。

2)注册为服务,开机自动启动(可选,该步骤非必须)
以CentOS 7.4为例创建文件:/etc/systemd/system/frps.service
  1. [Unit]
  2. Description=fraps service
  3. After=network.target syslog.target
  4. Wants=network.target

  5. [Service]
  6. Type=simple
  7. #启动服务的命令(此处写你的frps的实际安装目录)
  8. ExecStart=/root/frp/frps -c  /root/frp/frps.ini

  9. [Install]
  10. WantedBy=multi-user.target
复制代码


然后可通过以下命令控制服务状态
#启动frps
sudo systemctl start frps
#自启动
sudo systemctl enable frps
#卸载自启动
sudo systemctl disable frps
#重启
sudo systemctl restart frps
#停止
sudo systemctl stop frps
#查看日志
sudo systemctl status frps

3)如有防火墙需要设置防火墙放行7000、8001、7000端口,注意,除了机子本身的防火墙,IDC主机商处如有防火墙也需要设置放行,具体操作自行GG。


4、服务器(要暴露给外网的电脑)frpc配置
1) 假设已经在服务器电脑上将frp下载解压到路径D:\soft\frp,以下为frpc.ini的配置:
  1. [common]
  2. # 部署中转机frps的公网服务器的ip
  3. server_addr = 114.115.116.117
  4. # 和中转机frps的bind_port保持一致
  5. server_port = 7000

  6. # http代理服务一 ,[]内的代理服务名称在全局范围内确保唯一,每个代理服务不能重名,否则会影响正常使用。
  7. [http-a]
  8. type = http
  9. # local_port代表你想要暴露给外网的本地web服务端口
  10. local_port = 8585
  11. # subdomain 在全局范围内要确保唯一,每个代理服务的subdomain不能重名,否则会影响正常使用。
  12. # 客户端的subdomain需和中转机的subdomain_host配合使用,组成a.bijiafeng.com 这个访问网址。
  13. subdomain = a

  14. # http代理服务二 ,各项配置说明请参考配置组一
  15. [http-b]
  16. type = http
  17. local_port = 8686
  18. subdomain = b
复制代码


在frp解压目录下右键打开 powershell 或者cmd,执行如下命令./frpc.exe -c ./frpc.ini如果窗口提示 『start proxy success』 ,则代表frp服务端和frp客户端的通信隧道建立成功。

2)注册为Windows服务,开机自动启动
将之前下载的WinSW.NET4.exe放到frpc目录改名winsw.exe
创建winsw.xml文件,写入以下内容
  1. <service>
  2.     <id>frp</id>
  3.     <name>frp</name>
  4.     <description>frp客户端</description>
  5.     <executable>frpc</executable>
  6.     <arguments>-c frpc.ini</arguments>
  7.     <logmode>reset</logmode>
  8. </service>
复制代码


管理员权限打开CMD或PowerShell执行以下命令以控制服务状态
#安装服务
winsw install
#开启服务
winsw start
#重启服务
winsw restart
#停止服务
winsw stop
#卸载服务
winsw uninstall

毕嘉峰电脑技术论坛-Bijiafeng.com:论技术分享我们更专业更精确!!
关闭

站长推荐上一条 /1 下一条

9.9全场包邮

QQ|申请友链|小黑屋|毕嘉峰电脑技术论坛 ( 京ICP备13033230号 )|赞助我们 ipv6 ready

GMT+8, 2019-10-23 21:05 , Processed in 0.093296 second(s), 24 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表