Есть ли актуальные CLI клиенты, кроме официального? AmneziaVPN и Oblivion Desktop требуют GUI.
Пытаюсь запустить warp-svc на роутере. Что-то тяжело с ним. Прошу подсказать, что не так.
Пришлось переключиться на nftables, потому что iptables не поддерживается.
warp-svc пытается занять порт 53, на котором висит dnsmasq.
При отключении dns proxy
warp-cli mode tunnnel_only
Соединения через warp нет, идут постоянные переподключения, у роутера циклически теряется любая сетевая доступность (рвется ssh сессия, блокируется icmp) из-за добавления-удаления правил в nftables:
Спойлер
2026-02-05T04:44:06.467Z DEBUG main_loop:check_trace{config=ConnectivityCheckConfig { inside_tunnel_ips: NonEmptyVec([162.159.197.4, 2606:4700:102::4]), outside_tunnel_ips: NonEmptyVec([162.159.197.3, 2606:4700:102::3]), operation_mode: TunnelOnly, metadata: ConnectivityCheckMetadata { proxy_local_addr: None } }}: connectivity_check: close time.busy=597µs time.idle=4.00s
2026-02-05T04:44:06.467Z WARN main_loop: warp_connection::connectivity_check: Connectivity checks failed, retrying config=ConnectivityCheckConfig { inside_tunnel_ips: NonEmptyVec([162.159.197.4, 2606:4700:102::4]), outside_tunnel_ips: NonEmptyVec([162.159.197.3, 2606:4700:102::3]), operation_mode: TunnelOnly, metadata: ConnectivityCheckMetadata { proxy_local_addr: None } } trace_failed=Dns retry_after=452.653093ms
2026-02-05T04:44:07.077Z DEBUG do_trace_inner{host="engage.cloudflareclient.com" host_with_protocol="https://engage.cloudflareclient.com" timeout=4s sockets=[162.159.197.3:443, [2606:4700:102::3]:443] con_check_meta=ConnectivityCheckMetadata { proxy_local_addr: None }}: connectivity_check: fl=904f170
h=engage.cloudflareclient.com
ip=95.xx.xx.xx
ts=1770266646.000
visit_scheme=https
uag=WARP for Linux
colo=DME
sliver=none
http=http/1.1
loc=RU
tls=TLSv1.3
sni=plaintext
warp=off
gateway=off
rbi=off
kex=X25519
2026-02-05T04:44:07.205Z INFO do_trace_inner{host="connectivity.cloudflareclient.com" host_with_protocol="https://connectivity.cloudflareclient.com" timeout=4s sockets=[162.159.197.4:443, [2606:4700:102::4]:443] con_check_meta=ConnectivityCheckMetadata { proxy_local_addr: None }}: connectivity_check: close time.busy=6.07ms time.idle=279ms
2026-02-05T04:44:10.922Z WARN connectivity_check: DNS lookup timedout host="connectivity.cloudflareclient.com"
2026-02-05T04:44:10.922Z WARN connectivity_check: DNS lookup timedout host="connectivity.cloudflareclient.com"
2026-02-05T04:44:10.922Z WARN connectivity_check: DNS lookup timedout host="connectivity.cloudflareclient.com"
2026-02-05T04:44:10.922Z WARN connectivity_check: DNS lookup timedout host="connectivity.cloudflareclient.com"
2026-02-05T04:44:10.922Z ERROR connectivity_check: DNS connectivity check failed to resolve host="connectivity.cloudflareclient.com"
2026-02-05T04:44:10.922Z DEBUG main_loop:check_trace{config=ConnectivityCheckConfig { inside_tunnel_ips: NonEmptyVec([162.159.197.4, 2606:4700:102::4]), outside_tunnel_ips: NonEmptyVec([162.159.197.3, 2606:4700:102::3]), operation_mode: TunnelOnly, metadata: ConnectivityCheckMetadata { proxy_local_addr: None } }}: connectivity_check: close time.busy=577µs time.idle=4.00s
2026-02-05T04:44:10.922Z WARN main_loop: warp_connection::connectivity_check: Connectivity checks failed and timeout exhausted config=ConnectivityCheckConfig { inside_tunnel_ips: NonEmptyVec([162.159.197.4, 2606:4700:102::4]), outside_tunnel_ips: NonEmptyVec([162.159.197.3, 2606:4700:102::3]), operation_mode: TunnelOnly, metadata: ConnectivityCheckMetadata { proxy_local_addr: None } } trace_failed=Dns elapsed=13.100903805s
2026-02-05T04:44:10.922Z INFO main_loop: structlog: event="ConnPostcheckErrV0" cp_result="Err" cp_error="DnsLookup" cp_duration=13101
2026-02-05T04:44:10.922Z DEBUG main_loop: warp_connection::connectivity_check: Trace status: Err(Dns)
2026-02-05T04:44:10.922Z WARN main_loop: warp_connection::tunnel: Inside tunnel connectivity check failed. Disabling session affinity err=FailedConnectivityCheck(DNSLookupFailed)
2026-02-05T04:44:10.922Z DEBUG main_loop: warp_connection::connection: start_status=Err(FailedConnectivityCheck(DNSLookupFailed))
2026-02-05T04:44:10.923Z DEBUG tunnel_loop{protocol="masque"}: warp_edge::h3_tun::idle_timeout: Resetting idle timeout on healthy disconnect
2026-02-05T04:44:10.923Z DEBUG actor_statistics::handler: Recording gauge into histogram context=RecordIntoHistogramInfo { gauge_key: KeyName("tunnel_mtu_changes_per_conn"), histogram_key: KeyName("tunnel_mtu_changes_per_conn_hist"), component: "pmtu" }
2026-02-05T04:44:10.923Z DEBUG tunnel_loop{protocol="masque"}: warp_edge::connection_provider: Aborted connection driver task tunnel_connection_result=None
2026-02-05T04:44:10.923Z DEBUG tunnel_loop{protocol="masque"}: warp_edge::tunnel_loop: close time.busy=151ms time.idle=13.0s
2026-02-05T04:44:10.923Z DEBUG warp_tun::completion::wrapper: Stopping drive_writer
2026-02-05T04:44:10.923Z DEBUG main_loop:connect_with_fallback{primary="masque" fallback="H2"}:tunnel_stats_reporting_task{scid=3ca5db0d217db1fed0471003e36a8b09d26b8fda}: warp_edge::h3_tun: close time.busy=571µs time.idle=13.2s
2026-02-05T04:44:10.923Z DEBUG main_loop:connect_with_fallback{primary="masque" fallback="H2"}:happy_eyeballs_with_retry{protocol="masque" pq=true}:proxy_task{scid=3ca5db0d217db1fed0471003e36a8b09d26b8fda}: warp_edge::h3_tun: close time.busy=496µs time.idle=13.4s
2026-02-05T04:44:10.923Z DEBUG main_loop:connect_with_fallback{primary="masque" fallback="H2"}:happy_eyeballs_with_retry{protocol="masque" pq=true}: warp_edge::happy_eyeballs: close time.busy=2.31ms time.idle=13.7s
2026-02-05T04:44:10.923Z DEBUG main_loop:connect_with_fallback{primary="masque" fallback="H2"}: warp_connection::tunnel::fallback: close time.busy=2.91ms time.idle=13.8s
2026-02-05T04:44:10.923Z DEBUG main_loop: warp_connection::dns::dns_recovery::unix: Reverting Tunnel settings
2026-02-05T04:44:10.926Z DEBUG main_loop: warp_connection::dns::dns_recovery::unix: Deleted FWMARK rules table with status: Ok(())
2026-02-05T04:44:10.926Z WARN main_loop: warp_connection::controller: Connection failed to start error=FailedConnectivityCheck(DNSLookupFailed)
2026-02-05T04:44:10.926Z DEBUG main_loop: warp_connection::controller: Stopping WarpConnection state=Connecting
2026-02-05T04:44:10.926Z DEBUG utilities::tokio::select_watcher: Entering: [main loop] arm="tunnel_taskset_errors_fut"
2026-02-05T04:44:10.926Z DEBUG firewall::change: Firewall reset to defaults
Судя по логу, он почему-то не может зарезолвить connectivity.cloudflareclient.com , хотя на роутере в resolv.conf рабочие серверы, да и dnsmasq на 53 порту локально доступен.
При остановленном dnsmasq и включенном dns proxy (обычный режим warp-cli mode warp) подключение работает.
И при работающем, и при неработающем весь лог заспамлен сообщениями:
WARN tunnel_loop{protocol=“masque”}: warp_edge::tunnel_loop: Dropping martian, tun should not have seen this src_addr=[95.xx.xx.xx]