
Недавно я установил openvpn на свой pi, чтобы pihole и несколько других процессов могли работать за VPN. Хотя до сих пор все работало отлично, это, очевидно, сломало удаленный доступ к моему серверу Plex, который использует переадресацию портов на моем маршрутизаторе. Поэтому после небольшого исследования мне показалось, что создание пространства имен для Plex — это выход... но я не могу заставить его работать. Надеюсь, найдутся люди, разбирающиеся в сетях, которые смогут мне помочь.
Вот мой процесс настройки пространства имен с помощью macvlan (локальный адрес моего pi — 192.168.1.15, и я настраиваю пространство имен под 192.168.1.30). Все это использовало sudo, поскольку я вошел в систему как pi:
ip netns add plexns
запуск интерфейса обратной связи
ip netns exec plexns ip addr add 127.0.0.1/8 dev lo
ip netns exec plexns ip link set lo up
создание интерфейса macvlan
ip link add int0 link eth0 type macvlan mode bridge
ip link set int0 netns plexns
назначение адреса
ip netns exec plexns ip addr add 192.168.1.30/24 dev int0
ip netns exec plexns ip link set int0 up
настройка моего шлюза (IP-адрес маршрутизатора)
ip netns exec plexns ip route add default via 192.168.1.1
Кажется, это сработало, потому что когда я бегу
ip netns exec plexns curl icanhazip.com
он возвращает внешний IP, назначенный моим интернет-провайдером, а не моим VPN.
Далее я использовал
service plexmediaserver stop
чтобы остановить запуск plex. И я отредактировал /etc/init/plexmediaserver.conf так, чтобы строка start-stop-daemon выглядела так:
sudo ip netns exec plexns start-stop-daemon --start -c \
$PLEX_MEDIA_SERVER_USER --exec /usr/sbin/start_pms
Окончательно,
ip netns exec plexns service plexmediaserver start
Конечно, это не сработало. Когда я захожу на сервер на своем компьютере, он виден локально, но не удаленно. Он все еще работает под локальным IP 192.168.1.15, с внешним IP-адресом моего VPN.
Извините за новеллу, но я полный новичок в сетевых технологиях и не особо разбираюсь в программировании, так что любая помощь будет очень кстати!