Я хотел бы настроить контейнер так, чтобы он использовал VPN только для сетевого интерфейса.
Я использовал pptpsetup
и pon
сделал pptp-соединение работающим, и получил ppp0
интерфейс.
Теперь я хочу, чтобы все интернет-соединения в контейнере systemd-nspawn проходили через ppp0
.
Как мне это сделать?
решение1
systemd-nspawn --network-interface=ppp0
ppp0 исчезнет из пространства имен хоста. Вы не можете делить один IP-адрес с контейнером и не делить другие IP-адреса. (Кроме выполнения NAT).
Похоже, что для этого может потребоваться очень новое ядро. http://www.spinics.net/lists/netdev/msg339236.html
ИЛИ (машина создана после ppp0):
systemd-nspawn --private-network
ip link set dev ppp0 netns $PID
где $PID — это pid в пространстве имен хоста процесса в контейнере, полученный с помощью
P=$(machinectl $MACHINE_NAME show --property=Leader)
PID=${P#Leader=}
и $MACHINE_NAME
это значение, переданное -M
опцииsystemd-nspawn