背景介绍
Cloudflare Warp 是一种流行的网络代理工具,但其官方支持仅限于 CentOS 8 及更高版本。然而,由于 CentOS 7 的广泛使用,许多用户需要在这个较旧的系统上使用 Warp。直接在 CentOS 7 上安装 Warp 可能会遇到兼容性问题,因此我们采用了一种变通的方法,通过 Docker 容器在 CentOS 7 上运行 Warp。
准备工作:创建 CentOS 8 容器
考虑到 CentOS 8 已停止维护,我们建议使用与 CentOS 8 兼容的 AlmaLinux 或 Rocky Linux 镜像。这些替代品仍然受到支持,并且与 CentOS 8 完全兼容。以下是使用 AlmaLinux 镜像创建 Docker 容器的步骤:
1、拉取 AlmaLinux 镜像并创建容器:
sudo docker pull almalinux:8
sudo docker run -it --name warp-container almalinux:8
2、进入容器后,安装 Cloudflare Warp:
curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo -o /etc/yum.repos.d/cloudflare-warp.repo
dnf install -y cloudflare-warp
3、后台运行 Warp 服务:
nohup warp-svc > /dev/null 2>&1 &
4、注册 Warp 账户:
warp-cli registration new
5、设置 Warp 为代理模式:
warp-cli mode proxy
6、修改 Warp 的代理端口为 30000(默认端口为 40000):
warp-cli set-proxy-port 30000
7、连接 Warp:
warp-cli connect
容器内部端口转发配置
为了将容器内 Warp 代理的 30000 端口流量转发到外部,我们需要在容器内安装 socat
并设置端口转发:
1、安装 socat
和 net-tools
:
dnf install socat
yum install -y net-tools
2、配置端口转发:
socat TCP-LISTEN:40000,fork TCP:127.0.0.1:30000 &
这一步将容器内部的 40000 端口流量转发到 Warp 的 30000 端口。
宿主机上的配置
在宿主机上,我们需要配置 socat
以将本地端口 40000 的流量转发到 Docker 容器的 40000 端口。
1、安装 screen
和 socat
:
yum install screen
yum install socat
2、开启一个新的 screen
会话:
screen -S my_socat
3、监听本地 127.0.0.1:40000 端口并转发到容器的 40000 端口:
socat TCP4-LISTEN:40000,bind=127.0.0.1,fork TCP:172.17.0.2:40000
测试连接
完成上述配置后,您可以通过以下命令测试 Warp 代理是否正常工作。正常情况下,返回的应该是 Cloudflare 的出口代理 IP:
curl ifconfig.me --proxy socks5://127.0.0.1:40000
以上步骤为在 CentOS 7 上通过 Docker 容器使用 Cloudflare Warp 提供了一种有效的解决方案。通过这一配置,您可以在不更改宿主系统的情况下,享受 Warp 带来的加速与隐私保护。