HTTP vs HTTPS vs SOCKS 代理协议
- HTTP代理:主要用于网页浏览。它只支持HTTP协议。
- HTTPS代理:专门用于加密的HTTPS连接,确保数据传输的安全性。
- SOCKS代理:支持多种网络协议(如HTTP, FTP, SMTP等),并且可以处理TCP和UDP流量。SOCKS5还支持身份验证并提供更高级别的匿名性和安全性。
临时设置代理
-
为当前终端会话设置代理:使用
export
命令来设置环境变量,这种方式只对当前终端有效。- 设置HTTP/HTTPS代理:
export http_proxy=http://<IP>:<PORT> export https_proxy=http://<IP>:<PORT>
- 设置SOCKS5代理:
export http_proxy=socks5://127.0.0.1:1080 export https_proxy=socks5://127.0.0.1:1080
- 设置HTTP/HTTPS代理:
-
取消代理设置:
unset http_proxy unset https_proxy
永久设置代理
-
通过编辑配置文件实现永久代理设置:为了使代理设置长期有效,可以将代理相关的命令添加到
~/.bashrc
文件中。- 编辑
~/.bashrc
文件:vi ~/.bashrc
- 添加如下内容:
# set proxy function setproxy() { export http_proxy=socks5://127.0.0.1:1080 export https_proxy=socks5://127.0.0.1:1080 export ftp_proxy=socks5://127.0.0.1:1080 } # unset proxy function unsetproxy() { unset http_proxy https_proxy ftp_proxy }
- 保存并退出编辑器后执行
source ~/.bashrc
以立即生效或重启终端。
- 编辑
-
不同代理协议的作用:
socks5h://
和socks4a://
:这些协议指示代理服务器解析主机名。socks5://
和socks4://
:这些协议则是在本地解析主机名。
使用curl测试代理连接
- 测试HTTPS连接时,如果遇到证书错误,可以尝试使用
socks5h://
协议来让代理服务器处理域名解析。curl -x socks5h://127.0.0.1:1080 https://www.google.com
PAC (Proxy Auto-Configuration) 文件
- PAC文件是一个JavaScript脚本,用于定义何时使用代理服务器访问特定网站。
curl
和wget
工具无法直接解析PAC文件;因此,在默认情况下设置为PAC模式时,浏览器可以直接访问被墙的网站,但命令行工具如curl
和wget
则需要显式地指定http_proxy
和HTTPS_PROXY
才能访问。
HTTP、HTTPS和SOCKS是三种不同的网络协议,它们各自支持不同类型的代理。而透明代理、反向代理和正向代理则是根据代理服务器在网络通信中的位置及其功能来分类的。下面是这些概念之间的区别以及它们的关系: