背景1:
去年买了一台阿里云服务器,轻量应用服务器,2核4G.个人比较喜欢嵌入式,开发板也不少,但是开发板连接路由器后内次都要看一下IP然后去连接(虽然可以在路由器上控设置固定IP),然后最近突发奇想,使用阿里云服务器的公网IP作为跳板实现frp内网穿透,实现公网IP+端口随时随地就能控制你的开发板[nice.jpg],也能通过公网IP+端口访问你的电脑等等,感觉特别好玩,联想起huashengke的实现原理好像也是这样。
背景2:
就在前不久,感觉学校的内网把我的公网IP给拦截了,只要是使用学校的内网都ping不通,但手机流量可以访问(阿巴阿巴阿巴我干了啥子),然后就借用舍友的服务器作为跳板去访问我的服务器了,此时决定写下该frp教程
步骤如下:下载源码、部署服务器端、部署客户端。
步骤1:源码准备
看准你的系统是什么,我的系统是centos7,下载的是linux_amd64,如果想在电脑上实现就用windows,按需下载。
[root@Fourth ~]# uname -a
........................................ x86_64 x86_64 x86_64 GNU/Linux
!!! githup地址:https://github/fatedier/frp/releases
将对应压缩包上传到服务器,然后解压
tar -zxvf frp_0.42.0_linux_amd64.tar.gz
cd frp_0.42.0_linux_amd64
步骤2:服务器端配置
1、修改frps.ini
[root@Fourth frp_0.42.0_linux_amd64]# vi frps.ini
[common]
bind_port = 7000 #这个一般不要改它
dashboard_port = 7500 # 设置仪表盘端口
# 设置仪表盘访问的用户名密码
dashboard_user = admin
dashboard_pwd = admin
2、开放7000、7500端口,重启防火墙(更多防火墙操作见 防火墙篇)
firewall-cmd --permanent --zone=public --add-port=7000/tcp
firewall-cmd --permanent --zone=public --add-port=7500/tcp
systemctl reload firewalld
3、阿里云控制台开放7000、7500端口
4、部署frp
./frps -c frps.ini
5、浏览器查看部署情况
http://你的ip:7500
步骤3:客户端配置
1、参照步骤1和2将对应的githup源码压缩包放在客户端上,解压。
2、修改frpc.ini
[root@Fourth frp_0.42.0_linux_amd64]# vi frpc.ini
[common]
server_addr = 服务器的公网IP
server_port = 7000
[sshself] #这个名字可以随便改
type = tcp #通常tcp,udp按需修改
local_ip = 127.0.0.1 #一般不修改
local_port = 22 #外界连接本机的哪个端口
remote_port = 15000 #外界可以通过哪个端口访问进来
#外界通过 公网IP + remote_port ---访问---> local_ip + local_port
#如:访问1.2.3.4:15000 实质访问 127.0.0.1:22
3、客户端部署frp
./frpc -c frpc.ini
连接成功会有相应的提示,如果连接失败请检查以上步骤
.
.
.
此时已经基本部署完毕,但并没有什么实质的功能,因为在服务器端还没有开放可供客户端连接的端口,需要参照服务器端开放相应的端口给客户端,如上面步骤提到的15000端口
然后可以通过公网IP+端口访问你的开发板或者对应的服务了
附加操作
1、将服务器端、客户端程序放到后台运行
服务器端
nohup ./frps -c frps.ini &
客户端
nohup ./frpc -c frpc.ini &
2、将frp放至开机自启动
sudo vi /etc/rc.local
#自行修改为绝对路径
nohup /root/frp/frpc -c /root/frp/frpc.ini &
3、如果在客户端需要进行频繁修改与重新部署,参考以下一键重新部署脚本,自行修改路径
vi rebootfrp.sh
#!/bin/sh
NAME='/root/frp/frp_0.42.0_linux_amd64/frpc.ini'
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "---------------"
cd
nohup /root/frp/frp_0.42.0_linux_amd64/frpc -c /root/frp/frp_0.42.0_linux_amd64/frpc.ini &
echo "------reboot---------"
完
更多推荐
【保姆级】阿里云服务器frp内网穿透教程
发布评论