Python · GitHub · Linux | 使用本机作为代·理服务器
致谢同学教我这种方法;对于强制不允许访问 google github 的服务器,貌似非常好用
01 配置 HTTP 代理
假设本机的 c·lash 的端口是 7890,则在 vscode 的 ssh config 里,修改:
Host server_alias
HostName 123.45.67.162
User <user_name>
RemoteForward 127.0.0.1:7890 127.0.0.1:7890 # 添加这一行
这个文件应该在本机的 /user/.ssh 目录下。
然后,在服务器的 ~/.bashrc 里添加:
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
ulimit -n 65535
并 source ~/.bashrc 。
临时把代理关掉:
export http_proxy=""
export https_proxy=""
02 配置 ssh 代理
参考博客:https://seepine.com/git/ssh-proxy/
修改服务器 ~/.ssh 目录下的 config 文件,如果没有则新建这个文件:
Host github.com
Hostname ssh.github.com
Port 443
User git
ProxyCommand nc -v -x 127.0.0.1:7890 %h %p # 添加这一行
如果没有 nc 命令,则需要
sudo apt update
sudo apt install netcat
通过 ssh -T git@github.com 来测试是否配置成功。
03 用服务器 A 做访问服务器 B 的跳~ 板~ 机~
在 vscode 的 ssh config 里,修改:
Host server_A
HostName 123.45.67.162
User <user_name>
Host server_B
HostName 123.45.67.165
User <user_name>
ProxyCommand ssh -W %h:%p server_A # 添加这一行
04 一些修网记录
(参考:https://blog.csdn.net/a2267542848/article/details/119893382)
如果与服务器的连接突然断开了,想重新连服务器的时候,发现配置的本机代理不 work,可以在服务器上尝试以下命令:
sudo netstat -plant | grep 7890 # 查询服务器上占住 7890 端口的程序
# 大概率是原来残留的那个连接,需要把它杀掉。示例输出:
# tcp 0 0 127.0.0.1:38302 127.0.0.1:7890 CLOSE_WAIT 1748765/nc
sudo kill -9 1748765
# 批量删除进程
sudo lsof -ti :7890 | xargs sudo kill -9
# 还可以尝试这个,只是需要 sudo apt-get install tcpkill
sudo tcpkill -i lo port 7890
然后退出服务器重连即可。