1.搭建一个有公网ip的vps
参考这里第一部分Google Cloud Platform虚拟机部署。
BTW,GCP搭建的SSR不稳定,不能作为主要代理平台。
2.frp客户端与服务端
最新release:https://github.com/fatedier/frp/releases
将frps及frps.ini放到具有公网 IP 的机器上。
将frpc及frpc.ini放到处于内网环境的机器上。
以通用版本linux386为例:
wget -O frp_0.14.0_linux_386.tar.gz https://github.com/fatedier/frp/releases/download/v0.14.0/frp_0.14.0_linux_386.tar.gz
tar zxvf frp_0.14.0_linux_386.tar.gz
cd frp_0.14.0_linux_386
chmod +x frp*
修改 frps.ini 文件,这里使用了最简化的配置:
[common]bind_port= 7000
启动 frps:
./frps -c ./frps.ini
修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;
[common]
server_addr= x.x.x.x
server_port= 7000
[ssh]
type= tcp
local_ip= 127.0.0.1
local_port= 22
remote_port= 6000
启动 frpc:
./frpc -c ./frpc.ini
当看到start proxy success时,可以测试ssh效果。通过 ssh 访问内网机器,假设用户名为 test:
ssh -oPort=6000 test@x.x.x.x
开启frp之后会占据前台,可以后台操作i,或者利用
screen
指令打开新屏幕,回到某个screen为
screen -r xxx #(screen编号,一个screen可缺省)
不关闭退出:
ctrl+a 然后按d(detach)
delete screen :
ctrl +d
查看screen:
screen -ls
3.frps开机启动
在/etc/rc.local的exit 0之前加入一句:
/bin/bash 绝对路径/frpc -c 绝对路径/frpc.ini
frpc与wlt周性启动:crontab(因为只有普通权限)
以5分钟重新登录一次网络通,1天启动一次frpc为例,先创建启动脚本:
网络通 wlt.sh:
#!/bin/bash
curl-c/tmp/wlt"http://wlt.ustc.edu.cn/cgi-bin/ip?cmd=login&name=yourname&password=yourpass">/dev/null curl-b/tmp/wlt"http://wlt.ustc.edu.cn/cgi-bin/ip?cmd=set&type=6&exp=0">/dev/nullrm/tmp/wlt
frpc.sh:
#!/bin/bash
cd frp_0.14.0_linux_386
./frpc -c ./frpc.ini
bash中输入:
crontab -e
进入计划任务编辑界面,像vim一样,输入
*/5 * * * * /public/home/yourname/wlt.sh >>/public/home/yourname/remote_login.log 2>&1
* * */1 * * /public/home/yourname/frpc.sh >>/public/home/yourname/remote_login.log 2>&1
这里一定要给出绝对路径。wq保存退出,在bash输入crontab -l 可查看计划任务。
ps:frpc周期计划有bug,偶尔会出现许多frpc进程,影响正常操作,除了
kill -9 PID
杀掉外,建议使用screen登录,只是这样重启就没办法了。