【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
上一个项目是开发微信公众号,由于微信的各种烦人操作,只能到处找内网映射工具 ngrok也用过,花生壳也用过 都不怎么稳定,无意间听说了frp,本着一颗折腾的心搭建了一下,结果发现很不错,就一直到项目结束,发现还是很好用的,不过当时搭建的只能一个人用,(搭建ngrok又很麻烦 试了几次都有问题 !!很无奈),这会趁着用不到,尝试搭了下可以多人使用的!记录如下
所需工具
1. 云服务器 我用的阿里云CentOs7.7
2. 域名(已备案的那种)
3. nginx 1.16.1
4. frp 0.30
参考资料:https://juejin.im/post/5c49313f6fb9a049eb3c488f
https://www.wlphp.com/?post=166
https://blog.csdn.net/MaxWoods/article/details/89501907
开始操作:
1. 先安装nginx 我用的yum安装,主要是我感觉这个方便
yum install -y nginx 等待完成
2. 启动Nginx并设置开机启动
systemctl start nginx
systemctl enable nginx
3. 验证Nginx是否启动
ps -ef | grep -v grep | grep nginx
root 2195 1 0 20:25 ? 00:00:00 nginx: master process /usr/sbin/nginx
nginx 2196 2195 0 20:25 ? 00:00:00 nginx: worker process
4. 查看Nginx配置文件 (记住这个位置,后面要修改配置文件)
vi /etc/nginx/nginx.conf
5. 对于yum安装的Nginx来说,要想使配置文件的修改生效,需要重启Nginx,运行以下命令:
systemctl restart nginx
6. 网页验证Nginx是否成功运行。我的是这样,代表安装成功
nginx操作到此先暂停,安装frp:
7. 先在阿里云生成2条二级域名解析,分别为 frp.domain.com, *.frp.domain.com为例,指向当前阿里云服务器公网ip,具体操作自行百度
8. 连接服务器,我用的putty,这个自己去补习吧,连接上服务器以后,下载frp,我下载的目前最新版本0.30.0 有需要自己更换版本,版本在这里找
https://github.com/fatedier/frp/releases 下载 linux_amd64.tar.gz版本的 ,然后进入服务器登录操作
我在根目录下建了个myproject文件夹 ,你得知道自己东西放在哪了 ,回头找配置文件好找,
cd / 进入根目录
mkdir myproject 创建文件夹
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
下载后解压文件,然后当前路径会生成同名文件夹 ,计入文件夹
tar -xvf frp_0.30.0_linux_amd64.tar.gz 解压:
cd frp………… 不建议手打 使用tab建补全
看到以下几个文件
只需要修改 frps.ini文件,
vi frps.ini 打开配置文件,按i进入编辑模式,使用方向键移动,最终结果如下
保存步骤 先按ESC 然后按 :wq 回车键保存退出
如果你的防火墙开启了 给7000/7071端口放行 ,服务器后台安全组也需要给这两个端口放行,没开的话这一步可以忽略
# 开启防火墙端口 7000端口和7071端口即为上面配置的bind_port和vhost_http_port端口
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=7071/tcp --permanent
# 开启后重启防火墙,使得刚刚的修改生效
firewall-cmd --reload
设置frp开机自启,
vim /lib/systemd/system/frps.service
在frps.service里写入以下内容
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
#ExecStart=你的frp完整路径/frps -c 你的frps.ini完整路径
ExecStart=/test/frp_0.20.0_linux_amd64/frps -c /test/frp_0.20.0_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
然后就启动frps
systemctl start frps
再打开自启动
systemctl enable frps
修改nginx的配置文件
vi /etc/nginx/nginx.conf 替换里面的server模块为以下内容,注意修改路径
# frp的接收http请求的反向代理
server {
listen 80;
server_name *.frp.domain.club frp.domain.club;
location / {
# 7071端口即为frp监听的http端口
proxy_pass http://127.0.0.1:7071;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
# 防止爬虫抓取
if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot")
{
return 403;
}
}
reboot重启服务器,我工作电脑是window 下载windows 客户端,我的是64位系统
https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_windows_amd64.zip
下载完后解压,使用记事本编辑frpc.ini 如下
[common]
# 部署frp服务端的公网服务器的ip
server_addr = 你的公网ip地址
# 和服务端的bind_port保持一致
server_port = 7000
#token
token = xxxxx
# 代理服务一 ,[]内的代理服务名称在全局范围内确保唯一,每个人的每个代理服务不能重名,
# 否则会影响正常使用。
[http-a]
type = http
# local_port代表你想要暴露给外网的本地web服务端口
local_port = 8080
# subdomain 在全局范围内要确保唯一,每个代理服务的subdomain不能重名,否则会影响正常使用。
# 客户端的subdomain需和服务端的subdomain_host配合使用,保证唯一
subdomain = frp
# 代理服务二 ,各项配置说明请参考配置组一
[http-b]
type = http
local_port = 8686
subdomain = b
在你的解压路径创建一个start.bat文件,用记事本打开 复制下面内容进入
@echo off
frpc -c ./frpc.ini
pause
双击start.bat出现下图为成功
使用http://frp.frp.domain.com替换您的localhost试试效果
有问题留言
来源:oschina
链接:https://my.oschina.net/u/3937140/blog/3142861