Permissions

在 docker 中執行 vpnc 時,得到 ‘Cannot open ‘/proc/sys/net/ipv4/route/flush’: Read-only file system’

  • November 30, 2021

我正在嘗試Cisco VPN client在 Docker 中執行控制台。我這樣啟動容器:

docker run -it -v /srv/vpn/keys/:/root/keys/ --network=host --cap-add=NET_ADMIN  --device=/dev/net/tun -v /dev/net/tun:/dev/net/tun vpn-vpnc-client_img

然後vpnc在 Docker 容器中執行客戶端

vpnc-connect /root/keys/vpnc.conf --local-port 0

它產生以下輸出:

Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
VPNC started in background (pid: 257)...

vpnc連接並創建正確的路由,因此 VPN 似乎可以工作。我擔心的是警告資訊。根據文件,對於/proc/sys/net/ipv4/route/flush

寫入此文件會導致路由記憶體刷新。

我不明白這個說法。路由記憶體沒有被刷新是否很重要?

另外,據我了解,我可以發出

echo 1 > /proc/sys/net/ipv4/route/flush

容器啟動後手動。但我monit在 docker 容器內使用重新啟動vpncif 連接失去。我可以/proc/sys/net/ipv4/route/flush 以某種方式從容器內的主機綁定掛載,並發出命令從容器內的監控腳本刷新路由記憶體嗎?

我是 OpenConnect 的核心開發人員和vpnc 腳本的維護者之一——vpnc 和 OpenConnect使用該腳本進行路由和 DNS 配置。

此錯誤消息實際上來自vpnc-script,而不是來自vpnc自身,並且…

  1. 這個錯誤根本不重要。它來自ip -4 route flush cache觸發 IPv4 路由刷新的命令,這在現代 Linux 核心中是不必要的、已棄用的、無操作的

我們保留它只是為了向後兼容,以防有人vpnc在 annnnnnnnnnnnnnnnncieeeeeeent Linux 核心上執行 /OpenConnect。 2. 我們在2019 年對標準的更改vpnc-script中隱藏了錯誤消息。

如果你只是用最新版本替換你vpnc-script錯誤就會消失。

引用自:https://serverfault.com/questions/878443