簡體   English   中英

在 docker 容器上使用 openvpn 客戶端

[英]Use openvpn client on a docker container

我正在嘗試制作一個 docker 容器,它使用 OpenVPN 連接到我的私有 inte.net 訪問 VPN 並從 web 服務器下載一些數據,但是當我嘗試連接到 PIA 時出現錯誤:

2022-12-07 12:08:03 [oslo403] Peer Connection Initiated with [AF_INET]**.***.***.***:1198
2022-12-07 12:08:03 sitnl_send: rtnl: generic error (-101): Network unreachable
2022-12-07 12:08:03 ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
2022-12-07 12:08:03 Exiting due to fatal error

我嘗試手動創建 /dev.net/tun 設備:

RUN mkdir -p /dev/net && mknod /dev/net/tun c 10 200 && chmod 600 /dev/net/tun

但后來我得到這個錯誤:

2022-12-07 12:12:35 sitnl_send: rtnl: generic error (-101): Network unreachable
2022-12-07 12:12:35 ERROR: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
2022-12-07 12:12:35 Exiting due to fatal error

一切都以 root 身份運行,所以這不是問題。

這是我完整的 dockerfile:

FROM alpine

RUN apk update && apk add bash openvpn wget unzip

# This section downloads PIA's configuration and adds login information to it. 
RUN mkdir /vpn
RUN echo "********" > /vpn/login.txt
RUN echo "********" >> /vpn/login.txt
RUN wget https://www.privateinternetaccess.com/openvpn/openvpn.zip
RUN unzip openvpn.zip -d /vpn
RUN sed -i "s/auth-user-pass/auth-user-pass \/vpn\/login.txt/" /vpn/*

# Here is my attempted fix for the problem
RUN mkdir -p /dev/net && mknod /dev/net/tun c 10 200 && chmod 600 /dev/net/tun

ENTRYPOINT [ "openvpn", "/vpn/norway.ovpn" ]

我希望得到一些幫助。 我真正想要的只是一個示例,您將 openvpn 與 docker 一起使用,例如curl api.ipify.org

我想你只需要添加

--cap-add=NET_ADMIN 

運行命令。

This.network 更改需要通過 .NET_ADMIN 進行提升。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM