GFW对于特定国外IP段会进行拦截阻断,DG游戏导致我们无法访问对端,而我们需要用到socks协议的正向代理功能,负责为我们将请求转发到国外可用服务器,之后这台服务器将请求转发给你要访问的任何外网资源,最关键的部分就是这台国外服务器进行流量中转,欧博注册如下图: 因此跨越GFW拦截大前提是你有一台运行在境外的socks服务端,关于socks服务端搭建本文不提,很多代理软件都能实现,请查阅相关资料,同时只是科学上网需求更建议使用稳定机场,欧博代理不建议单独购买一台境外服务器搭建,性价比低容错率低。 以下操作建立在机器备案合规的前提下。 二、socks支持的代理协议socks运行在会话层,能代理TCP、UDP本身及基于它们之上的协议,如http/https over tcp,http3 over udp(quic),欧博官网无法代理icmp,因此你通过socks无法ping通谷歌,不要觉得是代理软件或节点的问题,是你的问题! 三、客户端安装socks协议代理很多软件能够实现,本文讲述众所周知的ss/ssr代理,欧博娱乐将shadowsocksR项目克隆到本地即可: 代码语言:txt 复制 $ cd /usr/share $ git clone https://github.com/RokasUrbelis/shadowsocksr $ cd ./shadowsocksr 初始化环境:bash initcfg.sh 客户端路径在./shadowsocks/local.py 客户端配置文件:user-config.json 四、写sytemd服务仅用于支持systemd服务的linux发行版,其他发行版请查阅相关发行版的服务管理软件 代码语言:txt 复制 $ mkdir -p ~/.config/systemd/user #创建用于存放systemd服务目录 $ vim ~/.config/systemd/user/ssr-client.service [Unit] Description=Shadowsocks R Client Service After=default.target [Service] ExecStart=/usr/bin/python /usr/share/shadowsocksr/shadowsocks/local.py -c /usr/share/shadowsocksr/shadowsocks/user-config.json #以你实际路径为准 Restart=on-abort [Install] WantedBy=default.target $ 通过systemd管理服务 代码语言:txt 复制 $ systemctl --user daemon-reload #reload守护进程,写完systemd后执行一次即可,后续不需要执行 $ systemctl --user status ssr-client #查看运行状态 $ systemctl --user start ssr-client #重启ssr客户端 $ systemctl --user restart ssr-client #重启ssr客户端 如果没有systemd服务也不想写成服务,你也可以使用懒人一行式: 代码语言:txt 复制 $ { nohup /usr/share/shadowsocksr/shadowsocks/local.py -c /usr/share/shadowsocksr/shadowsocks/user-config.json &> /dev/null; } & $ alias ssrstart='{ nohup /usr/share/shadowsocksr/shadowsocks/local.py -c /usr/share/shadowsocksr/shadowsocks/user-config.json &> /dev/null; } &' 五、ssr-config.json/user-config.json配置格式ssr: 代码语言:txt 复制 { "server": "blog.linux-code.com", "local_address": "127.0.0.1", "local_port": 1080, "timeout": 300, "workers": 1, "server_port": 3071, "password": "test", "method": "rc4-md5", "obfs": "http_simple", "obfs_param": "download.linux-code.com", "protocol": "origin", "protocol_param": "" } ss: 代码语言:txt 复制 { "server": "blog.linux-code.com", "local_address": "127.0.0.1", "local_port": 1080, "timeout": 300, "workers": 1, "server_port": 3071, "password": "test", "method": "rc4-md5", "plugin": "" } 六、代理测试服务正常运行后,使用如下命令临时测试下连通性: 代码语言:txt 复制 $ export http_proxy=http://127.0.0.1:1080 $ export http_proxy=https://127.0.0.1:1080 #export只针对你当前终端(pts/tty)有效,莫慌 想设置为全局代理,将上面两个命令加入到~/.bashrc即可,其他解释器放到各自的配置文件内,zsh则为~/.zshrc。 接下来访问谷歌看看: 代码语言:txt 复制 $ telnet google.com 80 Trying 93.46.8.90... Connected to google.com. Escape character is '^]'. 能通,说明已经正常运行,且节点状态正常: 取消当前终端代理,使用unset http_proxy https_proxy即可 七、Proxychains使用proxychains配合ss/ssr客户端,将更方便更具针对性的管理你的socks代理 1)安装代码语言:txt 复制 $ git clone https://github.com/rofl0r/proxychains-ng.git $ cd proxychains-ng $ ./configure $ make && sudo make install $ sudo cp ./src/proxychains.conf /etc/proxychains.conf 2)修改配置文件代码语言:txt 复制 $ sudo vim /etc/proxychains.conf socks5 127.0.0.1 1080 #根据实际情况更改,这里以ssr代理为例 socks5 127.0.0.1 1081 http xx.xx.xx.xx 9000 #添加http代理 $ 3)配置文件参数说明strict_chain(默认on) 按照后面列表中出现的代理服务器的先后顺序组成一条链,要求所有的代理服务器都是有效的。 dynamic_chain(默认off) 按照列表中出现的代理服务器的先后顺序组成一条链,如果有代理服务器失效,则自动将其排除,但至少要有一个是有效的。 random_chain (默认off) 列表中的任何一个代理服务器都可能被选择使用,这种方式很适合网络扫描操作(参数chain_len只对random_chain有效)。 proxy_dns(默认on) 代理dns请求。 ProxyList 添加代理列表,如http、socks4/5、auth user/pass等。 4)使用方法命令面前加proxychains即可,同样不能代理icmp,因为proxychains走socks,想代理icmp等全协议,建议用vpn相关软件 wget谷歌主页: 代码语言:txt 复制 $ proxychains4 -q wget google.com youtube视频下载: 代码语言:txt 复制 $ proxychains4 -q youtube-dl https://www.youtube.com/watch?v=W76ZGZGCpPs 加速git clone: 代码语言:txt 复制 $ proxychains4 -q https://github.com/RokasUrbelis/System-security-testing 原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。 如有侵权,请联系 cloudcommunity@tencent.com 删除。 云服务器 linux DevOps 解决方案 devops 原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。 如有侵权,请联系 cloudcommunity@tencent.com 删除。 云服务器 linux DevOps 解决方案 (责任编辑:) |