区域网搭建代理访问外网
1. 需求说明:
最近有项目要部署到服务器上,需要测试。麻烦的是有两点,单位使用的是内网,内网可以远程服务器,机房新建目前不能访问外网;服务器的系统是ubuntu18,个人电脑是ubuntu20,有很多差异,不是太好使用离线安装的方式。所以有在本地电脑搭建代理,服务器通过本地电脑访问外网。
2. 安装过程
参考博客 https://blog.csdn.net/uncle_ll/article/details/119383350的内容。
- 本地安装squid
sudo apt-get install squid
- 配置/etc/squid/squid.conf文件
建议将以前的squid.conf做备份然后重新配置一个文件。# 修改端口为代理的端口 http_port xxxx # 加入A服务器的ip,可以有多个 acl lc src xx.xxx.xxxx.xxx # 设置http_access能够访问上述服务器 http_access allow lc # 将http_access deny all注释修改为http_access allow all http_access allow all
- 在服务器端的环境路径中加入export http_proxy=http://xx.xx.xx.xxx:xxxx,例如在.bashrc中加入。
vim ~/.bashrc
#末尾加入
export http_proxy=http://xx.xxx.xxx.xxx:xxxx #代理ip和端口
# 保存后,运行。
source ~/.bashrc
# 或者
sudo vim /etc/profile
#末尾加入和上方相同的内容,使用
source /etc/profile #刷新
3. apt和pip源使用代理
- apt源
参考:https://zhuanlan.zhihu.com/p/629584549
在服务器的apt配置路径/etc/apt/apt.conf.d/新建proxy.conf,写入配置信息
$ sudo vim /etc/apt/apt.conf.d/proxy.conf
#对于没有用户名和密码的代理服务器,添加以下条目,如下:
#对于 HTTP 代理,添加以下条目:
Acquire::http::Proxy "http://proxy-IP-address:proxyport/";
#对于 HTTPS 代理,添加以下条目:
Acquire::http::Proxy "https://proxy-IP-address:proxyport/";
# 保存
$ sudo apt-get update
- pip 代理:参考https://hendiary.top/pip_proxy.html
#临时使用
pip install xxxx --proxy="myproxyname.mydomain.com:port"
# 长久更改
pip config set global.proxy http://username:password@proxyserver:port
# 会返回配置文件路径,有需要去更改。
- conda 设置代理
参考:https://blog.csdn.net/xiangfengl/article/details/127393790
vim ~/.condarc
# 添加
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
proxy_servers:
http: http://xxx.xx.com:8080
https: https://xxx.xx.com:8080
ssl_verify: false
- docker 代理:参考:https://docs.docker.com/config/daemon/systemd/
博客:https://blog.csdn.net/peng2hui1314/article/details/124267333
需要注意的一点是,根据本人实测写入deamon.json的代理网址后面一定要有‘/’结尾。否则不好用,会报错。
4 可能遇到的bug
遇到最多的是权限问题,可能需要加权限;
还有通过:
systemctl status squid.service
查看运行状态;发现squid FATAL: Unable to open HTTP Socket
;查看squid日志,/var/log/squid,下面有access.log,还有cache.log
查看cache.log,会发现引起的错误是端口已经被使用。本人解决的方法是重启电脑。最后正常了。