Vraag Hoe vind ik mijn interne ip-adres?


Ik heb Ubuntu-server 12.04 geïnstalleerd, dus ik heb geen GUI. Wanneer ik het commando ifconfig doe, kan ik mijn internl-ip-adres niet vinden. Er staat inet addr: 127.0.0.1.

Hier is de uitvoer van ifconfig -a:

eth0   link encap:Ethernet  HWaddr 00:06:4f:4a:66:f0
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1   link encap:Ethernet  HWaddr 00:16:ec:05:c8:9c 
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo     Link encap:Local Loopback
    inet addr 127.0.0.1  Mask:255.0.0.0
    inet6 addr:  ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536  Metric:1
    RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
    Tx packets:1800 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:143896 (143.b KB)  TX bytes:143896 (143.8 KB)

hier zijn de inhoud van etc / network / interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Als iemand dit voor mij kon bewerken, zou de inhoud van etc / network / interfaces op afzonderlijke regels moeten staan.

De uitvoer van host askubuntu.com was:

;; connection timed out; no servers could be reached.

Ik heb een paar maanden geleden owncloud en webmin opgezet en gebruikte ze een maand lang zonder problemen. Ik denk dat de stroom twee maanden geleden op een dag is afgegaan en ik heb de server nooit weer ingeschakeld tot gisteren. Ik heb niets gedaan dat de internetconfiguratie zou hebben beïnvloed. Dus ik weet niet zeker waarom het niet meer werkt. Voor zover mijn netwerktopologie gaat, heb ik een pci-e netwerkkaart voor de pc. De ethernet-lijn gaat van de netwerkkaart naar een switch en vervolgens van daaruit naar een modem / router.


159
2018-03-07 13:20


oorsprong


@AvatarParto Die zijn voor interfaces voor openbare toegang, deze vraag gaat over interne netwerken ... - Bruno Pereira
Uit nieuwsgierigheid, wat doet /etc/network/interfaces hebben erin? - Powerlord
Ik weet hoe ik de opdracht change directory moet gebruiken, maar ik weet niet hoe ik de bestanden daar moet weergeven, hoe kan ik dit doen? - Cam Jones
ls zal bestanden in een map weergeven. ls -l zal een gedetailleerde lijst geven. Om de inhoud van een bepaalde map te vermelden, ls -l /etc/network. Om te veranderen in een directory en lijstinhoud cd /etc/network ;ls -l. Om de inhoud van te lezen etc/network/interfaces (dit is een bestand) sudo pico /etc/network/interfaces. (pico is een lichtgewicht teksteditor - goed voor lezen & basisbewerkingen, en minder intimiderend dan vi.) - douggro


antwoorden:


Deze opdrachten zullen u alle netwerkinfo vertellen

ifconfig -a

of

ip addr show

Als je, zoals je zegt, je alleen 127.0.0.1 geeft, dan zijn er twee opties:

  1. Uw netwerkkaart is niet bevestigd of niet herkend door het systeem

  2. De DHCP-server van uw netwerk is niet actief of niet verbonden


159
2018-03-07 13:32



wanneer ik me aanmeld, vertelt het me dat er een paar upgrades of updates zijn, dus ik neem aan dat het moet praten met de officiële ubuntu-website om te weten dat het updates heeft, dus ik denk dat mijn internet werkt. - Cam Jones
@Skateguy probeert askubuntu.com te openen en druk alle ifconfig -a af - kamil
Ik heb geen GUI, ik sta op het punt om het uit te typen. - Cam Jones
Hoe kan ik de vragen beantwoorden die uw twee opties opleveren? - Cam Jones
@Skateguy Eerst lijkt het erop dat je geen DHCP-server hebt en moet je je IP handmatig instellen. kun je ons je netwerktopologie vertellen, hoe ben je verbonden met internet. en plaats de uitvoer van de volgende opdracht in uw terminal: host askubuntu.com - kamil


Dit is wat ik momenteel aanbeveel:

ip route get 8.8.8.8 | awk '{print $NF; exit}'

Het voordeel van die opdracht is dat je niet hoeft te weten welke interface je gebruikt (eth0? Eth1? Of misschien wlan0?), Je hoeft geen localhost-adressen of docker-adressen of VPN-tunnels uit te filteren, enz. en je zult altijd krijgen het IP-adres dat momenteel wordt gebruikt voor internetverbindingen op dat moment (belangrijk als u bijvoorbeeld verbonden bent met zowel ethernet en wifi of via VPN enz.).

Hiermee wordt niet alleen getest of u een juiste IP hebt geconfigureerd op een bepaalde interface (zoals bij het parseren van de uitvoer van ifconfig) maar ook dat u de routeringstabel hebt geconfigureerd om deze correct te gebruiken.

Ik vond dat idee in dit antwoord door Collin Anderson.

Ik gebruik het in de internalip script in mijn scriptcollectie op GitHub, die u kunt installeren met:

wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip

en gebruik als:

internalip

of:

internalip TARGET

en je krijgt je IP-adres dat gebruikt zou worden om verbinding te maken met het TARGET IP-adres. Het standaarddoel is 8.8.8.8 welke is de De openbare DNS-resolver van Google en een goede standaard voor internet.

Maar als je het uitvoert met een ander IP-adres:

internalip 127.2.3.4

Dan krijg je:

127.0.0.1

omdat dat uw IP-adres is waarmee u verbinding kunt maken met 127.2.3.4 op de loopback-interface. Het is handig wanneer uw doelwit op een LAN, VPN of ander speciaal netwerk is, in welk geval een ander IP-adres kan worden gebruikt voor verbindingen dan het standaard-IP voor het bereiken van internet.

Extern IP

Om uw te controleren extern IP-adres (het adres dat de servers op het internet te zien krijgen wanneer u verbinding met ze maakt - wat kan afwijken van het hier beschreven interne IP-adres) dit antwoord.


166
2018-04-03 02:49



dit is een geweldig antwoord, bedankt! redde me zoveel hoofdpijn! : D - user65165
Dit is een handige truc, maar het OP vroeg naar een interne IP, dus denk niet veilig te zijn om aan te nemen dat het routeerbaar is naar 8.8.8.8. - mc0e
@ mc0e Goed punt. Dat is waarom mijn script neemt een optioneel argument voor een andere IP - 8.8.8.8 is gewoon de standaard. In mijn antwoord gebruikte ik 127.2.3.4 als voorbeeld. Je kunt ook wat IP gebruiken op je intranet of op een VPN. Het punt is dat je dat meestal niet hebt een intern IP-adres maar weinig verschillende adressen die voor verschillende doelen worden gebruikt. Op deze manier kun je degene vinden die daadwerkelijk wordt gebruikt voor verbindingen met een bepaald doel. - rsp
Zodat u weet dat dit de externe IP op Mac geeft. - OZZIE


hostname -I

Dit geeft je gewoon een ip-adres zonder extra informatie.


134
2017-08-25 06:29



Dat is perfect. Zoveel overdreven gecompliceerde (maar niet slechte) antwoorden ... deze is gewoon doodeenvoudig. - user1003916
Perfect antwoord .. :) - john400
Volgens man pagina: `-I, --all-ip-adressen Toon alle netwerkadressen van de host. Met deze optie worden alle geconfigureerde adressen op alle netwerkinterfaces opgesomd. De loopback-interface en IPv6 link-local adressen zijn weggelaten. Dus dit geeft je een ip-adres op het netwerk waarmee je verbonden bent, maar ook IP van je machine als je het gebruikt als ethernet of lxd server. In mijn geval geeft het twee adressen omdat ik lxd heb: 192.168.0.78 en 10.0.3.1 - Sergiy Kolodyazhnyy
Yep. In mijn geval is het nog erger 10.0.2.15 172.18.0.1 172.17.0.1 172.20.0.1 172.21.0.1 172.22.0.1 172.19.0.1 omdat ik een aantal Docker-containers gebruik;) - Alex
Upvote omdat andere oplossingen niet werken, bijvoorbeeld op raw docker ubuntu image - noonex


Ik denk dat het de moeite waard is om te vermelden dat ifconfig samen met -een optie alle interfaces weergeeft of de interface een IP heeft of niet.

Als ifconfig alleen wordt uitgevoerd, worden alleen interfaces weergegeven met toegewezen IP's.

Hier is een leuke truc die je kunt gebruiken om alleen IP's weer te geven met Perl.

# ifconfig | perl -nle'/dr:(\S+)/ && print $1'
192.168.1.100
127.0.0.1

Uw netwerkkaart wordt door het systeem herkend, vandaar dat eth0 en eth1 worden weergegeven

hier is een snelle manier om IP toe te wijzen aan uw interface, gebruik hiervoor een geldig IP / Subnet.

 ifconfig eth0 192.168.1.200/24 up 

dan moeten we een standaardroute toevoegen

route add default gw 192.168.1.1

Het beste,


18
2018-03-07 21:17



Ik zou deze methode proberen, maar je zult het een beetje meer moeten uitproberen om het te begrijpen, zoals hoe je een geldig IP, subnet en een geldige standaardroute kunt vinden of kennen. - Cam Jones
dit is een statische IP-toewijzing voor uw netwerkinterface, wat betekent dat als u zich achter een router bevindt met subnet van 192.168.1.0/24, u een ex-IP kunt pingen. 192.168.1.200 en als je geen antwoord krijgt, ga dan een hoofd en gebruik ifconfig interface_name IP_ADDRESS / MASK je standaard GW moet worden toegevoegd na het toewijzen van IP. - user1007727


Deze opdracht toont alle IP-adressen voor een enkel apparaat:

dev=eth0
ip addr show $dev | awk '/inet/ {print $2}' | cut -d/ -f1

Het zal een of twee regels afdrukken. De eerste is het inet / IPv4-adres en de andere is inet6 / IPv6 als uw systeem is geconfigureerd om dit te ondersteunen.


8
2017-10-24 14:14





In het geval, de ifconfig opdracht heeft het IP-adres niet weergegeven, er is een zeer eenvoudige en gemakkelijke manier om via de GUI het IP-adres van de Ubuntu-machine te achterhalen. Volg onderstaande stappen:

Klik op de netwerkpictogram in het systeemvak en klik op Verbindingsinformatie. Network icon options

Dit opent een venster met wat informatie, waaronder het IP-adres. IP address information


5
2017-09-24 13:09





Er zijn hier al veel goede antwoorden om uit te kiezen, maar ik dacht dat ik erop zou wijzen facter wat meestal, maar niet noodzakelijk, wordt gebruikt met een pop voor het verzamelen van verschillende feiten over het systeem. Het grote voordeel van facter is dat het een mooie, zuivere uitvoer oplevert die u alle manipulatie bespaart grep, sed, awk, cut, perl, etc. Het zal je niet vertellen in welke interface je geïnteresseerd bent, maar als je dat weet, dan geeft het volgende je de IP zonder andere reden om op te schonen:

facter ipaddress_eth0 

1
2017-11-28 15:11





ip opdracht

Hier is een variatie op ip addr manier.

ip heeft -o optie die het mogelijk maakt om alle informatie op één regel te zetten - dit is handig voor het parseren met tools zoals awk of perl. In combinatie met -4 optie, zullen we alleen IPv4-adressen zien. De uitvoer zou dus ongeveer hetzelfde zijn (let op: vervang wlan7 door de interface die u wilt controleren):

$ ip -4 -o addr show wlan7
3: wlan7    inet 192.168.0.78/24 brd 192.168.0.255 scope global dynamic wlan7\       valid_lft 85654sec preferred_lft 85654sec

Zoals u kunt zien, is het IP-adres 4e kolom / woord in de uitvoer. De rest is eenvoudige parseeroefening via de tool van uw keuze. Hier gebruik ik python:

ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 

Hetzelfde, alleen met deze string <<< en opdrachtvervanging $()

python -c "import sys;print sys.stdin.readlines()[0].split()[3]"  <<< $(ip -4 -o addr show wlan7)

Persoonlijk heb ik dit opgeslagen als een leuke functie in mijn ~/.bashrc dus minder typen is gedaan.

wlan_ip() {
    ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 
} 

De versies van Perl en Ruby zijn iets korter:

$ ip -4 -o addr show  wlan7 | perl -lane 'print $F[3]'                         
192.168.0.78/24

$ ip  -4 -o addr show wlan7 | ruby -n -e 'print $_.split()[3]'                 
192.168.0.78/24

Wireshark

Als u bekend bent met het gebruik van netwerkanalysetools, weet u waarschijnlijk dat u voor het verkrijgen van uw ip-adres de browsercache leegt, Wireshark-opname op de specifieke interface start en naar http zoekt GET pakketten worden verzonden. In de kolom Bestemming wordt uw IP-adres weergegeven


1
2017-09-04 18:32