На консоли сделайте which firefox. Это мой вывод, например:
user@PORTATIL:~$ which firefox
/usr/bin/firefox
user@PORTATIL:~$ which google-chrome
/usr/bin/google-chrome
На основании ваших конкретных потребностей я бы, вероятно,:
Попросить их сообщить мне пароль маршрутизатора. Войдите и настройте переадресацию портов только для порта 22. Подключитесь через SSH (или SSH-туннелирование, если вам нужны дополнительные порты открыт) и выполнить задание.Я также забыл, что вы можете попробовать обратный туннель ssh, хотя для этого решения технически требуется еще один - средний компьютер для работы.
Более подробную информацию можно найти здесь
Я обычно настраивал туннель IPv6 (от sixxs.net или he.net), если у них еще нет IPv6, а затем таким образом компьютер имеет статический адрес, и мне не нужно возиться с NAT. Я также хотел бы настроить проверку подлинности на основе ключей (тогда они не должны сообщать вам свой пароль).
У Sixxs есть собственный клиент, который вы используете. Он работает практически для любого NAT и автоматически обновляется при изменении IPv4-адреса. У них есть инструкции по настройке и он упакован для Ubuntu.
Hurricane Electric использует туннель, в который пакеты IPv6 отправляются как полезная нагрузка пакета IPv4. В отличие от Sixxs, TCP / UDP не используется. Это означает, что NAT, за которым вы находитесь, должен поддерживать пересылку PROTOCOL 41 (не порт), и только один компьютер за NAT может его использовать. Программное обеспечение для использования такого туннеля встроено в Ubuntu.
Для HE я использую что-то подобное в /etc/network/interfaces:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
endpoint 216.218.226.238
address 2001:470:a29f::2
netmask 64
ttl 64
up ip -6 route add default dev he-ipv6
down ip -6 route del default dev he-ipv6
Другое дело, что вам нужно сделать обновляет конечную точку вашего туннеля. Поскольку вы не знаете, когда меняется внешний IP-адрес, вам нужно просто попытаться обновить конечную точку каждые несколько минут. Вы можете использовать что-то вроде этого и запускать его из cron:
#!/bin/sh
echo -n "Hurricane Electric Proto-41 tunnel endpoint update: "
#(C) 2010 Erik B. Andersen This script is licensed under the latest version of the
# AGPL published by the Free Software Foundation at http://www.gnu.org/licenses/ .
####Set these for each different site#########
pass="passwordhere"
user_id="a765b8e2f474667dcb56e08c5f1aa05b"
tunnel_id="97817"
####Past here doesn't need to be changed######
wget -4 "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&pass=$(echo -n "${pass}" | md5sum | grep -o -E "[0-9a-fA-F]{32}")&user_id=${user_id}&tunnel_id=${tunnel_id}" -O /dev/null -o /dev/null --no-check-certificate
echo " Done"
На протяжении многих лет я разработал GUI, чтобы делать то, что OP спрашивает ... за исключением того, что для доступа к третьему серверу с открытым IP-доступом требуется ssh, как это предлагает Pavlos. Вы можете найти здесь пакеты debian и инструкции:
http://pietrobattiston.it/reachme
Обратите внимание, что (все еще) не может позаботиться о начальной конфигурации - а именно, вам нужно настроить ключи rsa для подключения без пароля. После установки «reachthem» позволяет узнать, подключено ли «reachme», и открыть оболочку ssh / просмотреть файловую систему / просмотреть экран (экспериментальный).
Очевидно, что вам не нужно третий компьютер, если ваш компьютер имеет публичный IP-адрес, как в ответе ændrük. И, очевидно, преимущество GUI заключается в том, что удаленному пользователю не нужно вводить какую-либо команду в терминал ... но часть этого преимущества теряется, если удаленный пользователь должен установить reachme. Поэтому я всегда устанавливаю и настраиваю доступ для всех, на которых я устанавливаю Ubuntu.