Відповіді:
/sbin/ifconfig -a
inet addr
?
Якщо у вас є внутрішня адреса, що використовується, перевірте
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-адреса вашого маршрутизатора, ви можете запустити цю команду.
копати + короткий 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 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 )