Почти до конца дошёл, но не работает.
Вот мой контейнер:
from fedora:latest
copy cloudflare-release-el8/cloudflare.repo /etc/yum.repos.d/cloudflare.repo
copy cloudflare-release-el8/RPM-GPG-KEY-CLOUDFLARE-3 /etc/pki/rpm-gpg/RPM-GPG-KEY-CLOUDFLARE-3
run dnf -y upgrade && \
dnf -y install cloudflare-warp passwd && \
dnf clean all && \
echo root | passwd --stdin root && \
mkdir -p /root/.local/share/warp/ && \
echo -n yes > /root/.local/share/warp/accepted-tos.txt
expose 40000
cmd ["/usr/sbin/init"]
В нём запускается systemd и запускает этот самый warp.
Вот так я его собираю:
podman build --tag warp --file Dockerfile --no-cache
вот так я его запускаю:
podman run --name warp \
--interactive=true --tty=true --rm=true \
--volume ./cloudflare-warp:/var/lib/cloudflare-warp:Z \
--publish 40000:40000 \
warp
всё без рута, не доверяю я всяким бинарникам.
Внутри зарегистрировался (warp-cli register
), настроил прокси-режим и тд. В общем коннектит и по идее выставляет socks5 proxy на 127.0.0.1:40000. Внутри контейнера всё работает:
[root@e0d55b68c136 ~]# curl ifconfig.me
95.57.223.79
[root@e0d55b68c136 ~]# curl --socks5 127.0.0.1:40000 ifconfig.me
8.21.110.51
но вот снаружи контейнера ничего не работает:
$ curl --socks5 127.0.0.1:40000 ifconfig.me
curl: (97) Unable to receive initial SOCKS5 response.
$ curl --socks5 127.0.0.1:40001 ifconfig.me
curl: (7) Failed to connect to 127.0.0.1 port 40001: Connection refused
Видно, что при этом порт 40000 всё же отличается, например, от порта 40001, что-то на нём всё же принимает соединения.
Подозреваю, что дело в том, что warp-svc слушает именно 127.0.0.1, а не 0.0.0.0, но какой-то опции для конфигурации я не увидел. А может и не в этом дело.