利用frp内网穿透突破服务器ip限制

2018-01-18  本文已影响0人  sgzzl

1.搭建一个有公网ip的vps

参考这里第一部分Google Cloud Platform虚拟机部署。

BTW,GCP搭建的SSR不稳定,不能作为主要代理平台。

2.frp客户端与服务端

最新release:https://github.com/fatedier/frp/releases

frpsfrps.ini放到具有公网 IP 的机器上。

frpcfrpc.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.localexit 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登录,只是这样重启就没办法了。

上一篇下一篇

猜你喜欢

热点阅读