安装环境和需求
- 一台具有公网ip的服务器
- 一个域名
- 内网客户端使用Raspbian Pi 3b,Raspbian Stretch;
- 公网服务端使用CentOS 7;
配置
服务端上的配置
(喜欢把所有应用放到/home目录下)
先来个好听的名字 比如frp
mkdir /home/frp
cd /home/frp
再来这里看一下坠新的版本是啥,我看的时候是0.14.1,服务端当然是选amd64啦
wget https://github.com/fatedier/frp/releases/download/v0.14.1/frp_0.14.1_linux_amd64.tar.gz
解压进去打开frps.ini
tar -zxvf frp_0.14.1_linux_amd64.tar.gz
cd frp_0.14.1_linux_amd64
vi frps.ini
官方文档有对frps.ini的完整介绍,但我们只要内网穿透,因此只要跟着加简单几句就好了
# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
保存退出后可以跑跑看
./frps -c ./frps.ini
出现Start frps success
就好了,如果出错可以看看防火墙是否打开了相应端口
客户端上的配置
再来个好听的名字 比如还是frp
mkdir /home/frp
cd /home/frp
这次下载的就是arm版啦
wget https://github.com/fatedier/frp/releases/download/v0.14.1/frp_0.14.1_linux_arm.tar.gz
....国内网络环境感人
实在不行手动下载arm架构版的拖进树莓派
老规矩解压进去打开配置文件,但这个配置文件比服务端的复杂一点
tar -zxvf frp_0.14.1_linux_arm.tar.gz
cd frp_0.14.1_linux_arm/
vi frpc.ini
胆子小,不敢把ssh暴露在外网 所以全注释掉
输入
# frpc.ini
[common]
server_addr = x.x.x.x #这里是你的公网服务端ip
server_port = 7000
[web]
type = http
local_port = 80 #Web服务的本地端口
custom_domains = www.yourdomain.com #域名,记得要解析到公网服务端
装完就可以起飞了
./frpc -c ./frpc.ini
出现Start proxy success
就可以了
打开浏览器输入http://x.x.x.x:8080试试看
- 似乎一定要保证服务端一直且先开着才能连接成功
使用nohup制作一键启动脚本
客户端
因为本地的ssh工具一退出 树莓派的frpc就会退出 因此要想个好办法
可以用nohup或screen命令来保证frpc后台稳定运行,这里选择使用nohup
新建一个frp.sh
vi frp.sh
因为有时需要看log,所以就不加>/dev/null 2>&1 &
了
#frp.sh(cilent
nohup /home/frp/./frpc -c /home/frp/./frpc.ini &
设定权限后就可以起飞辣 777一劳永逸 去他妈的安全性(似乎应该用744)
sudo chmod 777 /home/frp/frp.sh
./frp.sh
服务端
同理,这里偷点懒,Xftp直接新建.sh权限改成744
#frp.sh(server
nohup /home/frp/./frps -c /home/frp/./frps.ini &
如果不用sftp软件的话需要sudo chmod 777 /home/frp/frp.sh
运行试试
./frp.sh
完成!这样就可以不用大段指令手动开启frp了
通过netstat -antpl
查看是否有有7000端口,但退出需要kill pid,用ps aux
慢慢找进程吧..
开机启动(Systemd)
这里用Systemd管理服务 比init.d和上面的破脚本不知道高到哪里去了
sudo vim /lib/systemd/system/frp.service
创建frp.service,输入
#frp.service
[Unit]
Description=frp Service
After=network.target
[Service]
User=root
Type=simple
ExecStart=/home/frp/./frpc -c /home/frp/./frpc.ini
[Install]
WantedBy=multi-user.target
重载并设置开机启动
sudo systemctl daemon-reload
sudo systemctl enable frp
//启动命令
sudo systemctl start frp
//停止命令
sudo systemctl stop frp
//重启命令
sudo systemctl restart frp
//查看状态
sudo systemctl status frp
完成!
参考:
官方文档