Ответы:
/sbin/ifconfig -a
inet addr
?
Вы можете использовать:
/bin/ip addr
ifconfig
в настоящее время находится в стадии разработки.
ip a
.
Если у вас есть внутренний адрес, проверьте
curl http://myip.dnsomatic.com
может быть хорошей идеей для оболочек Unix.
Или просто вставьте этот URL в ваш браузер.
Если вы получите другой ответ от « ifconfig -a
результата», дал свой внутренний адрес - который, вероятно , не работает из - за пределов.ifconfig
Даже если все выглядит нормально, у вас может быть установлен брандмауэр, который запрещает входящие ssh- соединения.
В это время вы должны попробовать порт интереса из браузера на машине по адресу,
http://www.canyouseeme.org/
Это подтвердит подключение через,
curl http://myip.dnsomatic.com
curl ifconfig.me
/bin/hostname -i
hostname --all-ip-addresses
. Показать все сетевые адреса хоста. Эта опция перечисляет все настроенные адреса на всех сетевых интерфейсах. Интерфейс обратной связи и локальные адреса IPv6 опущены. В отличие от опции -i, эта опция не зависит от разрешения имени. Не делайте никаких предположений о порядке вывода.
/bin/hostname -I
/bin/hostname -i
просто дает 127.0.1.1
, что бесполезно.
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
Если вам нужен ваш внутренний адрес, добавьте ваш интерфейс после ifconfig, например
/sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
Если вы находитесь за NAT и вам нужен публичный IP, используйте это:
wget -q -O - checkip.dyndns.org | sed -e 's /. Текущий IP-адрес: // '-e' s / <. $ //»
взяты из: http://www.go2linux.org/what-is-my-public-ip-address-with-linux
Если вам необходимо выяснить, какой IP-адрес у вашего роутера, вы можете запустить эту команду.
dig + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220
Если вы используете OpenDNS для вашего DNS-сервера, вы можете сократить его до:
копать + коротко myip.opendns.com
Вы также можете использовать эту команду.
локон http://myip.dnsomatic.com
Если у вас есть несколько интерфейсов, может быть полезно указать, какой из них вы хотите IP. если вы хотите IPV4-адрес интерфейса 'eth0':
ip addr show dev eth0 | grep "inet " | awk '{ print $2 }'
если вы хотите IPV6-адрес интерфейса 'eth0':
ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }'
если вы хотите искать IP между двумя общими интерфейсами ноутбука, wlan0 и eth0:
CURRENT_IP=''
for INTERFACE in wlan0 eth0; do
if [ -z $CURRENT_IP ]; then
CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }')
fi
done
Просто сверните эту страницу :
$ curl wtfismyip.com/text
Вот одна строка, которая работает также в Linux и OS X и возвращает первый адрес, который не является локальным:
ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
Отправьте кредиты на /programming//a/13322549/99834
LOCAL_IP=`/bin/hostname -I | sed 's/ //g'`
Самый простой способ сделать это, вероятно,
ifconfig eth0
при условии, что у машины есть один IP-адрес в проводном интерфейсе по умолчанию - вам может понадобиться
ifconfig wlan0
если это по WiFi.
Я понимаю, что вы хотите подключить удаленную машину с Ubuntu, которая имеет динамический IP-адрес. Зайдите на сайт dyndns.org и откройте бесплатный аккаунт. Затем на удаленной машине вам необходимо установить динамический инструмент IP.
sudo aptitude install dyndns-client
так что вы можете SSH удаленного компьютера через
ssh username@yourdynamicnamealias.dyndns.org
Поэтому после настройки вам никогда не понадобится IP-адрес удаленной машины.
если вам нужен только один IP-адрес данного интерфейса, вы можете сделать:
ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2); print $2 }'
Однажды я сыграл в гольф извлечение IP-адреса в Linux:
http://www.catonmat.net/blog/golfing-the-extraction-of-ip-addresses-from-ifconfig/
Если вы ищете публичный IP-адрес коробки , вы можете использовать следующее:
dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"
Вы можете использовать dig(1)
такие параметры, как -4
или, -6
чтобы специально искать адрес IPv4 или IPv6; Google предоставит ответ в виде записи такого TXT
типа, в которой будут указаны кавычки dig
; если вы хотите впоследствии использовать переменную с такими утилитами, как traceroute
, вы должны использовать что-то вроде tr (1) для удаления указанных кавычек.
Другие варианты включают whoami.akamai.net
и myip.opendns.com
, которые отвечают A
и AAAA
записывают (а не TXT
как в приведенном выше примере от Google), поэтому они не требуют удаления кавычек:
dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
dig -4 @resolver1.opendns.com -t any myip.opendns.com +short
dig -6 @resolver1.opendns.com -t any myip.opendns.com +short
Вот пример сценария, который использует все параметры выше для установки переменных:
#!/bin/sh
IPANY="$(dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv4="$(dig -4 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv6="$(dig -6 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
AKAMv4="$(dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)"
CSCOv4="$(dig -4 @resolver1.opendns.com -t a myip.opendns.com +short)"
CSCOv6="$(dig -6 @resolver1.opendns.com -t aaaa myip.opendns.com +short)"
printf '$GOOG:\t%s\t%s\t%s\n' "${IPANY}" "${GOOGv4}" "${GOOGv6}"
printf '$AKAM:\t%s\n$CSCO:\t%s\t%s\n' "${AKAMv4}" "${CSCOv4}" "${CSCOv6}"
Если вы ищете частный IP - адрес, или для набора всех IP - адресов , назначенных к ящику, вы могли бы использовать некоторую комбинацию ifconfig
(на BSD и GNU / Linux), ip addr
(на GNU / Linux), hostname
(варианты -i
и -I
на GNU / Linux) и netstat
посмотреть, что происходит.
vi /etc/network/interfaces
и установите интерфейсstatic
(см. Help.ubuntu.com/8.10/serverguide/C/network-configuration.html )