科学上网与本地代理
科学上网与本地代理
为了某些学习目的,访问国外的一些优秀网站速度会很慢,甚至无法访问,无法查阅到想要的“资料”。
在这种时候就可能需要一些代理手段,帮助我们更科学地上网📶。
常见的有 ByWave 和 Clash,都是挺不错的选择,流量包推荐 性价比机场.com,详情请自行了解。
当然,如果比较感兴趣、喜欢动手的朋友,也可以自己搭建一个代理服务(只能自己偷偷用哦,不然要被请去喝茶了)。
如何自建代理服务
注意
以下方案需要准备两台服务器,一台国内,一台国外,并且需要对 Linux运维
和 采购云服务器
有一定的熟练度。
准备一台 海外服务器,假设名为
服务器A
(IP 为123.123.123.123
),并设置安全组开放10123
端口(开放端口很重要,同时也很危险,详见 放行端口的步骤)。然后在
服务器A
上搭建 v2ray 服务,跟着说明文档配置,并设置端口为10123
。如果步骤没问题,你将会获得一些配置参数和 v2ray 协议链接。然后下载一个 代理客户端,并把协议链接录入测试
123.123.123.123.10123
的代理服务是否可用。
相关信息
海外服务器的采购可以使用 阿里云 等国内厂商没有问题,但依然推荐一些国外厂商的云主机,比如 硅云,也可以去找一些小众更便宜的云服务器提供商。
服务器地点一般选择 香港、新加坡 等靠近国内的延迟会比较低。
放行端口的步骤
以阿里云服务器为例,版本为 CentOS 7.x
,首先设置安全组,添加 10123
端口为公开:
然后还要在服务器上,开启防火墙并开放指定端口:
- 查看防火墙状态并开启
systemctl status firewalld
如果是 active(dead)
就表示停止,需要开启防火墙
systemctl start firewalld
- 开放指定端口
firewall-cmd --zone=public --add-port=10123/tcp --permanent
参数解释
参数 | 注释 |
---|---|
–zone=public | 作用域,公开的 |
–add-port=10123/tcp | 添加端口,格式为:端口/通讯协议 |
–permanent | 永久生效,没有此参数重启后失效 |
- 重启防火墙
firewall-cmd --reload
- 查看端口号命令
查看端口是否放行成功
firewall-cmd --list-all # 查看防火墙规则
或者
firewall-cmd --list-ports # 查看防火墙端口
查看当前所有 tcp 端口信息
netstat -ntlp
查看 10123
端口使用情况
netstat -ntulp | grep 10123
- 测试端口是否能连接上
写上 IP 地址和端口,内容为 ip:端口
,示例:123.123.123.123:10123
,然后点击 Go 或者直接回车
如果显示 successful,证明端口能连接;如果显示 failed,那就是无法连接上端口。
更简单的办法
正常来说,上面这些步骤执行后,端口一般都能连接上,如果使用上述地址测试后仍然无法连接,可能还存在外部防火墙没关或者端口放行方向不正确等问题。
为了更方便地管理防火墙和端口规则,推荐使用宝塔面板来操作。
配置好宝塔后,找到 安全 界面,添加端口规则,输入 10123
端口点击确定,其他保持默认即可。
保护你的代理服务器
注意
如果你已经自建代理服务并用起来了,但是别开心的太早,因为 123.123.123.123
的 IP 可能过几天就会被 GFW
扫描并封禁。
虽然你可以更换 IP ,但是这毕竟很麻烦,而且并不安全,而且更换 IP 会产生一定的费用。
这个时候你需要采用如下做法来保护你的海外服务器以及 IP。
再准备一台国内的服务器,假设名为
服务器B
(IP为456.456.456.456
),并设置安全组开放20456
端口。在
服务器B
中安装 Nginx 并添加如下配置:
stream {
upstream v2ray {
server 123.123.123.123:10123;
}
server {
listen 20456;
proxy_pass v2ray;
ssl_preread on;
}
}
配置解释
这一步的意思是:将 国内服务器B
中来自 20456
端口的请求全部转发给 国外服务器A
的 10123
端口。
详情
这一步的意思是,在其它设置不变的情况下,将原本的 服务器A
的地址和端口换成 服务器B
的。
到这一步之后,你每次使用代理客户端时,实际上全都是在请求国内的服务器,这时 GFW
的扫描不会发觉任何异常,也无法封禁国内 IP。
- 修改
服务器A
的安全组,在宝塔上配置,让10123
端口只允许 IP 为456.456.456.456
的机器访问。
详情
到这一步之后 GFW
扫描 服务器A
就不会发现任何异常,毕竟这个端口的安全组会阻拦 GFW
的访问,表面看它就是一个平平无奇的服务器而已。
然后国内的 服务器B
本身就在国内,不受 GFW
约束。
日常的代理客户端,只会被抓到它在请求国内服务器,则 IP 地址安全。
当然,两台服务的成本确实会有点点高,实测这种方案最为安全和稳定。
本地代理客户端
https://github.com/v2rayU/v2rayU
Windows:https://github.com/2dust/v2rayn/releases
下载v2rayN-With-Core.zip
和v2rayN.zip
并解压,然后将前者目录中的内容覆盖替换到后者目录中,然后就可以双击v2rayN.exe
文件进行使用了。Android:https://github.com/2dust/v2rayNG/releases
下载对应的apk
文件安装即可。如果打不开或安装失败就多换几个安装包试试。MacOS:https://github.com/yanue/V2rayU/releases
下载对应的.dmg
文件安装即可。如果打不开或安装失败就多换几个安装包试试。
Windows 客户端配置如下:
找到「服务器」菜单,点击 添加[VMess]服务器
输入代理的 IP 和端口,像上面我们配置了请求转发,那这里就填
国内服务器B
的配置,然后点击生成用户 ID,最后点击确定。确定后就会自动开始代理服务了。然后系统代理选择
自动配置系统代理
(这样就不用到设置里面配置代理了),路由选择绕过大陆
(这样如果国内能访问就优先用国内线路,访问不了再用代理线路)。因为我自己有加速器,科学上网的需求也不是很高,所以用的国外服务器配置很一般,网速有点慢🤣.