校园网 | 内网 下的服务器代理上网配置及 脚本

服务器 0

项目场景:

校园网-服务器上网

学生党一枚。实验室服务器在内网里,只有当主机连接了校园网才可以连接到服务器。服务器也连接着校园网,校园网需要登录认证才可以上网,所以服务器默认上不了网,只能上内网。


解决方案:

1、让服务器进行登录认证–对于命令行系统过于麻烦,故不讨论

有图形化界面还好说,唯一麻烦的就是一般校园网只让2台设备登录。
对于命令行系统来说就过于麻烦了,如果更方便点就需要自己编写脚本,不在此讨论。

2、进行代理上网。

1. 配置好代理服务器,我是让服务器直接走的我的主机代理。
我所知道是可以使用clashv2rayN这俩个软件,本身基本也是常用的学习软件了。以下以v2rayN举例:

打开软件后:“设置” --> “参数设置” --> “Core:设置" -->打开 ”允许来自局域网的连接”
获得端口号
然后软件基础页面的右下角,这里就是你代理服务器的http和sock端口号了。

2. 为服务器配置代理
使用export命令

export http_proxy=http://你的主机ip:刚刚得到的http端口号#下面这个可以设置也可以不设置。export all_proxy=socks5://你的主机ip:刚刚得到的socks端口号 

1、配置这个代理,在结束终端,比如ssh断开连接,就没有用了,下次启动就需要再次执行
2、docker要拉取镜像还需要再单独配置docker的配置文件
3、ping不通网页,但是可以通过yum下载软件,基本实现了做实验所需要的上网功能, 可以通过下面的命令看看能不能安装软件

# centos 使用yumyum install tree# 随便什么软件,vim也可以,如果存在了,也可以删了来测试,所以我一般用tree,有就yum remove tree。

3. 编写个脚本

这个脚本的作用:获取每次连接到服务器的主机ip,然后配置代理,所以要求主机记得每次都要开启自己的代理软件比如v2rayN

vim set_proxy.sh #名字随便喜欢

复制以下内容到这个文件里。

#!/bin/bash# 获取主机的IP地址last_login=$(last | grep $(whoami) | head -n 1 | awk '{print $3}')# 检查是否成功获取到IP地址if [ -n "$last_login" ]; then    # 设置代理,将主机IP替换成你获取到的IP地址    export http_proxy=http://$last_login:10809    export all_proxy=socks5://$last_login:10808    echo "Proxy configured successfully with host IP: $last_login"else    echo "Failed to retrieve host IP address."fi

ps : 如果这个脚本运行没有用,可能是系统不一致造成的,可能需要自行修改,我是centos系统。

设置开机自启

vim ~/.bashrc #编辑这个文件

添加以下内容进去

source /刚刚编写的文件所在的path/set_proxy.sh #这里是绝对路径。编写完文件后可以通过`pwd`来查看path(所在目录)

完成后退出,之后每次用ssh连接服务器,就会自动配置代理了,想让配置文件立马生效也可以用下面的命令来测试成果

source ~/.bashrc

也许您对下面的内容还感兴趣: