校外使用校园网访问外网

一、所需材料二、原理三、实现内网穿透1、在云服务器上安装frp2、在校内主机上安装frp3、测试frp是否搭建成功

四、校内主机实现代理服务器功能1、校内主机安装Squid软件2、修改校内主机frp客户端配置文件frpc.ini

五、效果演示

写在前面:知网以及很多顶会期刊都是商业数据库,下载里面的文献是收费的;

而我们学校购买了这些服务,只要使用校园网就可以免费下载里面的文献;

校园网部署了防火墙,校外是无法使用校园网的,今天是21.12.25,学校快放寒假了,为了回到家也能下载期刊论文,在校园内先提前部署好。在此详细记录一种实现方法。

一、所需材料

在开始之前,以下教程需要用到的设备有:

一台具备公网ip的主机(笔者用的是一台阿里云服务器)一台校园内部常开的主机(笔者用的是搭载了Centos的主机)校外的一台Windows笔记本电脑

用到的软件有:

frp(内网穿透工具,frp是这方面主流的工具)Squid(UNIX/linux主要采用Squid实现代理服务器功能)

二、原理

1、为了实现外网能够访问校园网,我们须在云服务器和校内主机上都安装frp软件,实现内网穿透功能; 2、在校内主机上安装Squid软件,从而将校内主机变为代理服务器,能够转发接收到的浏览器请求。

三、实现内网穿透

1、在云服务器上安装frp

Xshell等软件远程连接云服务器,并用root账号登陆;

cd /usr/local/src #进入此目录

wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz

上面网址是frp在Github的下载地址,大家自己在Github上找到frp的合适版本,frp的Github官网地址也有很多示例教程。

tar -xvf frp_0.38.0_linux_amd64.tar.gz #解压文件

cd frp_0.31.1_linux_amd64/

ls

配置frp服务器端配置文件frps.ini 用vim命令打开frps.ini文件

[common]

bind_port = 7000 #frp使用的端口

dashboard_user = admin #流量监控的账户 自己设置

dashboard_pwd = 123456 #流量监控的密码 自己设置

dashboard_port = 6440 #流量监控程序的端口,搭建完成之后用 云服务器IP:6440 就可以打开流量监控网页程序

启动frp服务端

nohup ./frps -c ./frps.ini &

注:nohup的作用是让我在关闭Xshell远程连接时,frp服务端不会跟ssh进程一起关闭。 参考文档: 解决Linux关闭终端(关闭SSH等)后运行的程序自动停止 在linux后台运行脚本命令和程序的方法大全 注意事项: 国内云服务器大多都要配置安全组的,以阿里云为例,配置规则里更改访问规则,从而打开需要用到的端口。

2、在校内主机上安装frp

用Xshell连接校内主机,并用root账户登录。

cd /usr/local/src #进入此目录

wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz #笔者这里用的版本和云服务器的一样,读者在Github选择自己合适的版本

tar -xvf frp_0.31.1_linux_amd64.tar.gz #解压文件

cd frp_0.31.1_linux_amd64/

ls

配置frp客户端配置文件frpc.ini 用vim命令打开frpc.ini文件。

[common]

server_addr = <你的云服务器IP地址>

server_port = 7000

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22 #local_port端口是校内主机的ssh端口号

remote_port = 6001 #remote_port端口是云服务器的端口号。此端口自己设置,实现当你用Xshell连接 云服务器IP地址:6001即是在连接你校内主机的SSH端口

启动frp客户端

./frpc -c ./frpc.ini

3、测试frp是否搭建成功

用Xshell连接,连接地址填 云服务器IP地址:6001,用户名和密码填校内主机的。如果ssh能够成功连接,则成功实现内网穿透。 这是官方提供的教程:通过SSH访问内网机器

四、校内主机实现代理服务器功能

1、校内主机安装Squid软件

安装软件 Xshell远程连接校内服务器,以root身份登录 终端执行命令

yum install squid -y

yum install httpd-tools -y

生成密码文件

mkdir /etc/squid3/

#ikaros 是用户名

htpasswd -cd /etc/squid3/passwords ikaros

#提示输入密码,比如输入123456

测试密码文件

/usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords

#输入用户名 密码

ikaros 123456

#提示ok说明成功

ok

#ctrl+c退出

配置squid.conf文件

vim /etc/squid/squid.conf

#在最后添加

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords

auth_param basic realm proxy

acl authenticated proxy_auth REQUIRED

http_access allow authenticated

# And finally deny all other access to this proxy

http_access allow all

# Deny CONNECT to other than secure SSL ports

http_access allow CONNECT !SSL_ports

#这里是端口号,可以按需修改

#http_port 3128 这样写会同时监听ipv6和ipv4的端口,推荐适应下面的配置方法。

http_port 0.0.0.0:3128

启动,停止,重启等

#启动start

systemctl start squid.service

#停止stop

systemctl stop squid.service

#重启stop

systemctl restart squid.service

#配置开机自启动

systemctl enable squid.service

#关闭开机自启动

systemctl disable squid.service

#查看运行状态

systemctl status squid.service

参考教程:Centos7搭建Squid代理服务器

2、修改校内主机frp客户端配置文件frpc.ini

我们在4.1步骤里添加了校内主机3128端口为代理服务器的端口,所有到此端口的浏览器请求都会被此端口转发出去。 此时我们还得更改校内主机frp客户端配置文件frpc.ini,从而使云服务器所收到的浏览器请求转发到校内主机的3128端口。

Xshell以root身份连接校内主机

cd /usr/local/src/frp_0.38.0_linux_amd64/ #进入校内服务器的存放frp文件的目录

vim frpc.ini

#在最后添加

[proxy-http]

local_ip = 127.0.0.1

local_port = 3128

remote_port = 8000 #此端口自己设置,步骤五会用到。

重启frp客户端

nohup ./frpc -c ./frpc.ini &

如果报以下错误,说明之前的frp客户端还没关闭。 关闭方法可kill此进程,具体方法百度如何重启frp客户端。

五、效果演示

到了这一步,校园网代理就算搭建完毕,可以直接使用windows连接我们的代理。 看校外的笔记本电脑是否呢能够免费下载知网,以及顶会期刊论文。

打开windows菜单->设置->网络与Internet->代理 在地址一栏填上你的云服务器IP地址,端口填8000(在4.2这一步设置的),然后打开使用代理服务器的开关

然后打开浏览器,就可以成功访问校园网资源啦,也可以免费下载知网,顶会期刊的论文了。 如下图,知网会显示机构的名称,此时就可以免费下载论文了。

不用的时候记得到设置里面将使用代理服务器关掉,否则会影响网速。