知网,只能在校内用,那么如果在校外,怎么下载知网的论文?我想了一下准备用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),
image.png
然后切换到外网,访问知网。发现成功
image.png

部署frp

前面是直接启动frp的,所以很容易就挂掉。那么这里就采用systemctl+supervisorctl 进程守护,来实现。

服务端设置

在刚才解压的目录,解压后将frps复制到/usr/bin目录

cp frps /usr/bin

frps.ini文件复制到/etc/frps.ini
image.png

将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

image.png

使用systemctl命令来控制frp服务端服务

systemctl start frps  //启动服务
systemctl stop frps  //停止服务
systemctl status frps  //查看服务状态
systemctl reload frps //重新加载服务

运行之后,查看stauts发现连接成功
image.png

supervisor进程保护

安装supervisor

apt install supervisor

Supervisord 安装完成后有两个可用的命令行 supervisord 和 supervisorctl,命令使用解释如下:

supervisord,初始启动 Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx 为 [program:beepkg] 里配置的值,这个示例就是 beepkg。

  1. supervisorctl start programxxx,启动某个进程
  2. supervisorctl restart programxxx,重启某个进程
  3. supervisorctl stop groupworker: ,重启所有属于名为 groupworker 这个分组的进程(start,restart 同理)
  4. supervisorctl stop all,停止全部进程,注:start、restart、stop 都不会载入最新的配置文件。
  5. supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
  6. 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发现连接成功
image.png

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就可以稳定的运行下去了

参考链接:

在linux系统上部署frp客户端
通过frp内网穿透实现外网访问校内资源

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐