ฉันต้องการเรียกใช้คอนเทนเนอร์นักเทียบท่าสองคอนเทนเนอร์ในเนมสเปซเครือข่าย Linux เดียวกัน
เป้าหมายของฉันคือกำหนดเส้นทางการรับส่งข้อมูลฝนตกหนักทั้งหมดของฉันผ่าน OpenVPN
สคริปต์นี้สร้างคอนเทนเนอร์ไคลเอ็นต์ openvpn สำเร็จ
ฉันสามารถป้อนเนมสเปซนี้ได้สำเร็จและยืนยันว่าที่อยู่ IP ของฉันเป็นที่อยู่ IP ของ OpenVPN จริงๆ
ปัญหาของฉันคือ - ฉันจะเรียกใช้คอนเทนเนอร์นักเทียบท่า qbittorent ภายในเนมสเปซเครือข่าย openvpn ได้อย่างไร
มีการตั้งค่าสถานะบางอย่างเมื่อเริ่มต้นคอนเทนเนอร์นักเทียบท่าเพื่อระบุเนมสเปซเครือข่ายที่จะเรียกใช้หรือไม่
มีวิธีแก้ไขอื่น ๆ ที่เป็นไปได้หรือไม่?
ฉันเข้าใจว่าฉันไม่สามารถเปลี่ยนเนมสเปซเครือข่ายของกระบวนการที่กำลังทำงานอยู่ได้
ขอบคุณ
อัปเดต
สารละลาย
เพิ่มสิ่งนี้
--net=container:$openvpn_client
openvpn_client="openvpn-client"
torrent_client="torrent_client"
dewinettorrent_ns="dewinettorrent_ns"
ฟังก์ชัน getpid {
pid="$(นักเทียบท่าตรวจสอบ -f '{{.State.Pid}}' "$1")"
ก้อง $pid
}
นักเทียบท่า rm -f $openvpn_client
นักเทียบท่า rm -f $torrent_client
ip netns ลบ $dewinettorrent
ip netns pids $dewinettorrent_ns | xargs -t ฆ่า -9
นักเทียบท่ารัน -d \
--สิทธิพิเศษ \
--ชื่อ=$openvpn_client \
--volume /home/dewi/code/dot-files/vpn/:/data/vpn \
--volume /home/dewi/code/dewi_projects/ivacy_vpn_auth:/data/vpn/auth-user-pass \
นักเทียบท่า openvpn ไคลเอนต์ dewi
นักเทียบท่ารัน -d \
--name=$torrent_client \
-e PUID=1,000 \
-e PGID=1,000 \
-e TZ=ยุโรป/ลอนดอน \
-e WEBUI_PORT=8080 \
-p 9080:8080 \
-v /path/to/appdata/config:/config \
-v /path/to/downloads:/downloads \
lscr.io/linuxserver/qbittorrent
mkdir -p /var/run/netns;
ln -fs "/proc/$(getpid $openvpn_client)/ns/net" /var/run/netns/$dewinettorrent_ns
mkdir -p /etc/netns/$dewinettorrent_ns/
echo 'เนมเซิร์ฟเวอร์ 8.8.8.8' > /etc/netns/$dewinettorrent_ns/resolv.conf
นักเทียบท่า exec -i $openvpn_client ทุบตี /data/scripts/entry.sh &
ip netns exec $dewinettorrent_ns curl icanhazip.com #ส่งคืนที่อยู่ IP VPN ของฉันสำเร็จ