Вы имеете в виду любой маршрутизируемый IP-адрес вашего DSL/кабельного модема/и т.д. роутер есть?
Вам нужно либо запросить это устройство, либо спросить внешний сервер, какой IP-адрес он видит при подключении к нему. Самый простой способ сделать это — выполнить поиск в Google по запросу «какой у меня ip», и, как и при поиске с расчетом, он сообщит вам об этом в первом результате поиска. Если вы хотите сделать это из командной строки, вам нужно будет проверить вывод какого-нибудь скрипта, который будет отображать информацию. У службы динамического DNS dyndns.org есть служба, которую вы можете использовать -попробуйте эту команду
wget http://checkip.dyndns.org -O -
Вы должны получить что-то вроде
HTTP request sent, awaiting response... 200 OK
Length: 105 [text/html]
Saving to: ‘STDOUT’
- 0%[ ] 0 --.-KB/s <html><head><title>Current IP Check</title></head><body>Current IP Address: 192.168.1.199</body></html>
- 100%[===================>] 105 --.-KB/s in 0s
2017-09-20 14:16:00 (15.4 MB/s) - written to stdout [105/105]
Я изменил свой IP-адрес на универсальный, не -маршрутизируемый, и выделил его для вас жирным шрифтом.
Если вам нужен только IP,вам нужно будет разобрать его оттуда -быстро и грязно, но у меня это работает. И я на 100% уверен, что есть более безопасный способ сделать это...
wget http://checkip.dyndns.org -O - | grep IP | cut -f 2- -d : | cut -f 1 -d \<
Что даст вам только
192.168.1.199
Я отвечу на свой вопрос, так как я исправил проблему
Это происходит потому, что, вероятно, NetworkManager (или другой процесс )управляет интерфейсом. Они периодически сбрасывают конфигурацию интерфейса. Для решения вопроса:
Проверьте, какие интерфейсы используются managed
с помощью NetworkManager:
nmcli dev status
Если тестовые интерфейсы указаны в выводе приведенной выше команды как managed
, значит, ими управляет NetworkManager. В противном случае они будут перечислены как unmanaged
. Если они указаны как managed
,то у нас есть два варианта:
managed
NetworkManager:sudo nano /etc/NetworkManager/NetworkManager.conf
Добавьте следующие строки в файл conf
:
[keyfile]
unmanaged-devices=mac:00:11:22:33:44:55;mac:66:77:88:99:00:aa
Замените mac-адреса на mac-адреса тестовых интерфейсов. В более новых версиях NetworkManager для этого можно использовать имена интерфейсов :
.[keyfile]
unmanaged-devices=interface-name:eno1,interface-name:enp4s0
Перезапустите NetworkManager:
systemctl stop NetworkManager
systemctl start NetworkManager
Проверьте, не являются ли интерфейсы теперь неуправляемыми:
nmcli dev status
Остановить текущий сеанс (он снова запустится при следующей загрузке):
systemctl stop NetworkManager
ИЛИ отключите NetworkManager (он НЕ запустится снова по умолчанию при следующей загрузке):
systemctl disable NetworkManager
Если они не указаны в NetworkManager как управляемые, они могут быть арендованы dhclient. Чтобы убедиться, что:
sudo cat /var/lib/dhcp/dhcpd.leases
Если интерфейс арендуется dhclient, он будет указан в выводе. Если это так, либо найдите PID dhclient и уничтожьте его, либо отредактируйте файл конфигурации dhclient и исключите тестовые интерфейсы.