背景:一两个月以来,上信息课的时候总是没有互联网可用,让我们这群 OIer 苦不堪言。所以我决定下血本(14RMB)为机房打开断网的枷锁,造福人类。
准备工具
- 一个可用的 USB 网卡(最好是免驱动的,
且不要太显眼) 一个 U 盘(不是必需)- 一颗略懂一些网络相关知识的头脑
- IMPORTANT:一个能够收到教育网WIFI信号的机房
开始操作
注:以下操作均在 Windows 7 (64bit) 下进行
Round 1 - 开始作案
插入无线网卡,安装好驱动,连接上教育网 WIFI。
- 如果此时浏览器跳出来教育网的验证界面,就直接随便找一个能用的账号登上去,大概就能让你自己的电脑上网了。
- 如果像我一样跳不出验证界面,可以尝试在控制面板中把机箱自带的有线网卡禁用了,此时应当就会跳出验证界面,然后登录即可。
Round 1.5 - 解决网卡问题
此时你的电脑应该已经能够上网了,但是独乐乐不如众乐乐,下一步就是让机房的其他人也连上网络。
下面的操作需要懂一些网络知识,否则很容易失败(欧皇除外)
抄作业(依次输入下面的指令, 用于解决不能同时访问局域网和互联网的问题):
route add -p 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 10 if 11
这个命令表示添加一条永久性的静态路由,使得到局域网的数据包(目的IP在192.168.1.0/24范围内)都通过接口11(局域网网卡)和网关192.168.1.1来路由。metric 10表示此路由的优先级。
route delete 0.0.0.0 if 12
此命令删除通过接口12(假设其为以太网适配器)的默认网关。
然后重置网卡:
- 点击“开始”按钮,选择“控制面板”。
- 点击“网络和共享中心”。
- 在左边的菜单中选择“更改适配器设置”。
- 右键点击您想要重启的网络适配器(无线或有线网络适配器),然后选择“禁用”。
- 稍等几秒钟后,再次右键点击同一个适配器,这次选择“启用”。
此时你的电脑应该可以正常上网,且能同时访问局域网(可以连上极域).
Round 2 - 搭建 Apache 代理服务器
通过网络或者是提前准备好的 U盘, 下载 Apache 24, 最好直接解压到 C
盘到 C:\Apache24
里.
然后开始配置代理服务器
打开配置文件 Apache24/conf/httpd.conf
:
修改根目录为自己放置Apache24的目录,这里不修改启动会报错
Listen端口修改(将 *
修改成自己要监听的端口和 ip)
Listen *.*.*.*:****
加载所需的模块
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule xml2enc_module modules/mod_xml2enc.so
注释掉ssl模块,不然启动的时候需要443端口会报错
#LoadModule ssl_module modules/mod_ssl.so
在最后添加Proxy配置, 开启Apache正向代理并允许所有的请求可以访问代理
ProxyRequestsOn
<Proxy *>
Requireall granted
</Proxy>
配置完成
然后使用命令行进入 Apache24/bin
目录, 输入 httpd -k install
安装 Apache 服务, 然后输入 httpd -k restart
启动服务器.
如果出现报错, 请首先检查 Apache 的版本是否为 24
Round 3 - 连接代理服务器
方法一: 手动设置
不用多说吧, 大多数浏览器都有这个设置的入口, 只需把你的电脑的 ip 和监听的端口填入到同学电脑的局域网(LAN)设置
中的 为LAN使用代理服务器
选项下面即可.
方法二(未经测试): 自动扫描
下面的代码是 gpt-4-turbo 生成的, 本人不保证可用性.
@echo off
setlocal EnableDelayedExpansion
set IP_START=192.168.1.1
set IP_END=192.168.1.254
set PORT=7890
set PROXY_FOUND=0
for /L %%i in (1,1,254) do (
set IP=192.168.1.%%i
echo Checking !IP! on port %PORT%...
PowerShell "$client = New-Object Net.Sockets.TcpClient; try {$client.Connect('!IP!', $env:PORT)} catch {} if ($client.Connected) { echo '!IP! is open'; $client.Close(); exit !IP! } else { echo '!IP! is closed' }" >nul 2>&1
if !ERRORLEVEL! EQU 0 (
set PROXY_IP=!IP!
set PROXY_FOUND=1
goto SetProxy
)
)
:SetProxy
if %PROXY_FOUND% EQU 1 (
echo Setting Proxy to !PROXY_IP!:%PORT%
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\StatText/%PORT%g Settings" /v ProxyServer /t REG_SZ /d "!PROXY_IP%:%PORT%" /f
echo Proxy set successfully.
) else (
echo No open ports found on any servers.
)
endlocal
修改文件中的端口和扫描的网段, 然后保存为 .bat
文件分发给同学即可, 这种方法甚至不要求你记住自己的ip地址. 无论同学在天涯海角, 只要在一个局域网下, 就都能找到上网的路.