frp内网穿透——访问校内资源
知网,只能在校内用,那么如果在校外,怎么下载知网的论文?我想了一下准备用frp+代理服务器实现这个功能,frp做内网穿透。下载frp软件我们需要用到的有:一台具有公网IP的VPS(本文使用的ubuntu 64位)一台学校内网电脑(不要求有固定公网IP,能免费访问万方等数据库就行,本文使用的系统为ubuntu 64位)根据系统环境从项目版本页 下载对应的版本。这里我们下载 frp_0.1...
知网,只能在校内用,那么如果在校外,怎么下载知网的论文?我想了一下准备用frp+代理服务器实现这个功能,frp做内网穿透。
下载frp软件
我们需要用到的有:
一台具有公网IP的VPS(本文使用的ubuntu 64位)
一台学校内网电脑(不要求有固定公网IP,能免费访问万方等数据库就行,本文使用的系统为ubuntu 64位)根据系统环境从项目版本页 下载对应的版本。这里我们下载 frp_0.18.0_linux_amd64.tar.gz(服务端和客户端使用相同的软件包)
服务端配置
下载软件包
wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz
解压frp_0.20.0_linux_amd64.tar.gz
tar -xzvf frp_0.20.0_linux_amd64.tar.gz
进入frp_0.20.0_linux_amd64目录,配置配置文件
cd frp_0.20.0_linux_amd64
配置文件使用默认,执行:
sudo chmod +x frps
./frps -c frps.ini
输出信息为
2018/05/05 11:45:23 [I] [service.go:96] frps tcp listen on 0.0.0.0:7000
2018/05/05 11:45:23 [I] [root.go:172] Start frps success
需要注意的时候公网IP:7000
端口要开放给外网。进行这个后,使用在线服务扫描端口,查看是否开放了端口
配置客户端
下载软件包
wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz
解压frp_0.20.0_linux_amd64.tar.gz
tar -xzvf frp_0.20.0_linux_amd64.tar.gz
进入frp_0.20.0_linux_amd64目录,配置配置文件
cd frp_0.20.0_linux_amd64
我们这里使用http_proxy模式,关于frp的其他功能配置见frp项目首页 使用vi
或者其他,修改frpc.ini如下:
[common]
server_addr = 你的服务器IP
server_port = 7000
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
打开命令提示符cmd,CD到解压目录
执行:
sudo chmod +x frps
./frpc -c frpc.ini
无error即可。
同时在服务器端输出类似于
2018/05/05 11:45:39 [I] [proxy.go:86] [0dasdasdaadf3] [http_proxy] get a new work connection: [xxxxxx:xxx]
信息即表示测试通过。
然后,在浏览器设置代理服务器(chrome推荐SwitchyOmega),
然后切换到外网,访问知网。发现成功
部署frp
前面是直接启动frp的,所以很容易就挂掉。那么这里就采用systemctl+supervisorctl 进程守护,来实现。
服务端设置
在刚才解压的目录,解压后将frps复制到/usr/bin目录
cp frps /usr/bin
将frps.ini
文件复制到/etc/frps.ini
将frp客户端安装为服务并随系统启动
此方法适用于使用Systemd的系统(我使用的是Ubuntu系统)
创建/etc/systemd/system/frps.service
文件,内容如下:
[Unit]
Description=frp proxy server
Wants=network-online.target
After=network.target
[Service]
ExecStart=/usr/bin/frps -c /etc/frps.ini
ExecReload=/usr/bin/frps -c /etc/frps.ini reload
ExecStop=/bin/kill -2 $MAINPID
Type=simple
KillMode=none
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
使用systemctl命令来控制frp服务端服务
systemctl start frps //启动服务
systemctl stop frps //停止服务
systemctl status frps //查看服务状态
systemctl reload frps //重新加载服务
运行之后,查看stauts发现连接成功
supervisor进程保护
安装supervisor
apt install supervisor
Supervisord 安装完成后有两个可用的命令行 supervisord 和 supervisorctl,命令使用解释如下:
supervisord,初始启动 Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx 为 [program:beepkg] 里配置的值,这个示例就是 beepkg。
- supervisorctl start programxxx,启动某个进程
- supervisorctl restart programxxx,重启某个进程
- supervisorctl stop groupworker: ,重启所有属于名为 groupworker 这个分组的进程(start,restart 同理)
- supervisorctl stop all,停止全部进程,注:start、restart、stop 都不会载入最新的配置文件。
- supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
- supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
创建supervisor配置文件
vi /etc/supervisor/conf.d/frps.conf
内容
[program:frps]
command =frps
autostart = true
autorestart=true
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisor/frps.log
重启服务
supervisorctl reload
客户端设置
客户端程序配置与服务端程序配置基本相同,这里稍微说明一下
在刚才解压的目录,解压后将frps复制到/usr/bin目录
cp frpc /usr/bin
将frps.ini
文件复制到/etc/frps.ini
将frp服务端安装为服务并随系统启动
此方法适用于使用Systemd的系统(我使用的是Ubuntu系统)
创建/etc/systemd/system/frpc.service
文件,内容如下:
[Unit]
Description=frp proxy client
Wants=network-online.target
After=network.target
[Service]
ExecStart=/usr/bin/frpc -c /etc/frpc.ini
ExecReload=/usr/bin/frpc -c /etc/frpc.ini reload
ExecStop=/bin/kill -2 $MAINPID
Type=simple
KillMode=none
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
使用systemctl命令来控制frp服务端服务
systemctl start frpc //启动服务
systemctl stop frpc //停止服务
systemctl status frpc //查看服务状态
systemctl reload frpc //重新加载服务
运行之后,查看stauts发现连接成功
supervisor进程保护
安装supervisor
apt install supervisor
创建supervisor配置文件
vi /etc/supervisor/conf.d/frps.conf
内容
[program:frps]
command =frps
autostart = true
autorestart=true
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisor/frps.log
重启服务
supervisorctl reload
经过以上三部分,frp就可以稳定的运行下去了
参考链接:
更多推荐
所有评论(0)