Как использовать netplan, чтобы сделать то же, как делался с помощью iptables?

Я настраиваю новый сервер с 18,04 на основе инструкций, записанных для 14,04. Я имею до этих шагов:

/sbin/iptables -A FORWARD -p tcp --destination-port 80 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -j REDIRECT -p tcp --destination-port 80 --to-ports 8080
/sbin/iptables-save
# To save permanently (reset-persistent):
sudo sh -c "iptables-save > /etc/iptables.rules"
# Modify in /etc/network/interfaces
# Add this line:
    pre-up iptables-restore < /etc/iptables.rules    
# As below:

# The loopback network interface
auto lo
iface lo inet loopback
    pre-up iptables-restore < /etc/iptables.rules

# The primary network interface
auto eth0 eth1
iface eth0 inet static
        address XXX.XXX.XX.XXX
        netmask 255.255.255.0
        gateway XXX.XXX.XX.1
        dns-nameservers 8.8.4.4 8.8.8.8 XXX.XXX.0.3
iface eth1 inet static
        address XX.XXX.67.47
        netmask 255.255.0.0

Но оказывается, что 18.04 делает вещи другой путь, с помощью чего-то названного netplan.

Я нашел вопросы и ответы связанными с тем, как вернуться назад к тому, как вещи были сделаны в 14,04, но я задаюсь вопросом, лучше ли сделать то же самое новый путь.

Как я могу сделать то, что делается старый способ использовать netplan?

0
задан 13 February 2019 в 07:34

1 ответ

Netplan не поддерживает сценарии рычага:

https://netplan.io/faq#use-pre-up-post-up-etc-hook-scripts

Обходное решение должно использовать networkd-диспетчера. Вышеупомянутый FAQ дает пример о том, как сделать это.

Следующее является примером использования networkd-диспетчера для выполнения существующих рычагов ifup с помощью сценария, установленного в/etc/networkd-dispatcher/routable.d/50-ifup-hooks:

#!/bin/sh

for d in up post-up; do
    hookdir=/etc/network/if-${d}.d
    [ -e $hookdir ] && /bin/run-parts $hookdir
done
exit 0

Точно так же вот пример рычага ifdown, установленного в/etc/networkd-dispatcher/off.d/50-ifdown-hooks:

#!/bin/sh

for d in down post-down; do
    hookdir=/etc/network/if-${d}.d
    [ -e $hookdir ] && /bin/run-parts $hookdir
done
exit 0
0
ответ дан 26 October 2019 в 06:34

Другие вопросы по тегам:

Похожие вопросы: