代理技术
发布于 May 3, 2023 • 1 分钟 阅读 • 69 字介绍代理技术前先温故一下TCP/IP协议栈模型,现行大部分的计算机程序进行网络活动需要遵循TCP/IP四层参考模型封装和解封数据。应用在应用层中将数据封装
以Chrome浏览器为例,浏览器产生的数据会依次经过应用层、传输层、网路层和接口层的封装,层层打包。应用层数据里会以HTTP
协议打包,添加域名、请求头等信息。传输层数据会以TCP
协议打包,添加端口等信息。网路层数据会以IP
协议封装,添加源和目标IP地址等信息。网路接口层数据会以802.3
(以太网)标准封装,发送至你的路由器或者是运营商的光猫。
在四层模型中传输层和网路层由操作系统实现,提供Socket库供应用程序进行调用。
报文发送至目标主机需要通过IP协议寻址,数字形式的IP地址并不容易进行记忆,由此产生了更易于记忆的域名方式来映射具体的IP地址。应用程序一般使用域名访问服务,这就需要将域名转换为IP地址的服务,即DNS服务。系统提供的DNS服务会先查询hosts文件的域名IP映射关系,然后查询已配置的DNS服务器。
代理技术分正向代理和反向代理,他们的特征在于正向代理面向客户端,集中代理客户端流量,而反向代理则是面向服务器,转发客户端流量到服务器。正向代理技术可以实现科学上网、广告拦截、流量转发等功能,反向代理技术则可以实现负载均衡、证书加密等功能。正向代理常用的客户端有v2ray、clash等软件,反向代理常用的软件有nginx、httpd。
Clash使用Go语言编写,直接下载二进制可执行文件并添加执行权限即可运行。clash发行版版有开源版本和闭源版本,推荐使用闭源版本支持虚拟网卡代理功能。下载地址: Clash.
cp -a /path/to/your/clash/binary /usr/bin
if [ ! -d /etc/clash ]; then
mkdir -p /etc/clash
fi
cat >> /etc/systemd/system/clash.service << EOF
[Unit]
Description=Clash daemon, A rule-based proxy in Go.
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/clash -d /etc/clash
[Install]
WantedBy=multi-user.target
EOF
systemctl enable clash
systemctl start clash
待填坑……