У меня есть виртуальная машина в VirtualBox. Благодаря DHCP он получает определенный локальный IP-адрес. Например, 192.168.18.16Как сделать виртуальную машину (VM) на linux всегда доступной с перенаправлением UPNP в реальном времени с помощью upnpc
Я использую пакет upnpc (miniupnpc), чтобы создать перенаправление из Интернета в определенный порт. Например, для FTP (порт 21) я могу создать перенаправление с внешнего порта 1621 на 21 порт виртуальной машины. Я использую хрон с линией:
* * * * * upnpc -a 192.168.10.16 21 1621 TCP
My VM может работать в другой сети и получает различный IP, такие как 192.168.19.16, 192.168.30.16 ...
Я не хочу, чтобы изменить вручную перенаправление в зависимости от сети, где выполняется. Поэтому я стараюсь в кронтаб -e:
* * * * * upnpc -a $(ifconfig eth0 | grep 'adr:' | cut -d: -f2 | awk '{ print $1}') 21 1621 TCP
Но это не работает, почему? Что я мог сделать ?
Thx за ответы
Этот сайт предназначен для вопросов о программировании. Вы, скорее всего, получите ответы на вопросы об использовании существующих программ на [superuser] (http://superuser.com) – simonc
Thx для вашего комментария, но я считаю это bash-программированием. Согласны ли вы? – Platypus
Ваш 'ifconfig eth0 | grep 'adr:' | cut -d: -f2 | awk '{print $ 1}' ', вероятно, глючит. Посмотрите на вывод ifconfig и исправьте его. Например, на моей машине это ничего не держит, а 'ifconfig eth0 | grep 'inet' | awk '{print $ 2}' 'дает мне 198.18.32.1, который действительно является IP-адресом моего eth0. – jbm