it-swarm-tr.com

İnternete bağlanmak için hangi arayüzü kullandığımı nasıl öğrenebilirim?

ifconfig 'a göre eth0 Ve wlan0 Var ve ping google.com Yapabilirim.

Hangi arayüzün aktif olduğu gibi (normal bir kullanıcıyla, root değil), ping'in hangi arayüzü kullandığını (veya ping zorunlu değilse) nasıl öğrenebilirim?

Ubuntu 11.04 veya Fedora 14 kullanıyorum

56
LanceBaynes

Varsayılan rotanızı bulmak için route kullanabilirsiniz:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Hedef Iface satırındaki default sütunu hangi arabirimin kullanıldığını gösterir.

55
Job

Temelde this ve this tabanlı sürümüm:

route | grep '^default' | grep -o '[^ ]*$'

Ve bu, macOS için deneysel olarak :

route -n get default | grep 'interface:' | grep -o '[^ ]*$'
31
Ebrahim Byagowi

GNU/Linux sistemlerinde:

#!/bin/sh

# Host we want to "reach"
Host=google.com

# get the ip of that Host (works with dns and /etc/hosts. In case we get  
# multiple IP addresses, we just want one of them
Host_ip=$(getent ahosts "$Host" | awk '{print $1; exit}')

# only list the interface used to reach a specific Host/IP. We only want the part
# between dev and src (use grep for that)
ip route get "$Host_ip" | grep -Po '(?<=(dev )).*(?= src| proto)'
11
Torgeir

Bir astar:

ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\) table.*/\1/p'

8
h0tw1r3

Genellikle açık bir şekilde yönlendirilen DMZ, özel ağ, VM Ana bilgisayar vb.) Karşısında "kalan" İnternet'e yönlendirmek için kullanılan varsayılan ağ arayüzünü alın.

$ ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)'
eth0
7
EugeneP

ifconfig çalıştırmak size ihtiyacınız olan bilgileri verecektir.

Aktif arayüzde inet addr Olacak ve iletilen verilerin bir kaydı gösterilecektir, örneğin:

RX bytes:1930741 (1.8 Mb)  TX bytes:204768 (199.9 Kb)

ip addr Komutunu da kullanabilirsiniz; etkin olmayan tüm arabirimler şu şekilde tanımlanır: NO-CARRIER.

6
jasonwryan

Komuta ip route ls, etkin rotaların ve kaynaklarının bir listesini verecektir:

caleburn: ~/ >ip route ls
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.7 
default via 192.168.10.254 dev eth0 
2
Shadur

Bu komutu kullanın:

$ route | grep default | awk '{print $8}'
enp0s3
1
Larry Catt

aşağıdakini kullanın:

ip r | grep default
0
akash

Makinenizde birden fazla arabirim varsa (ki bunlar benim için), internete bağlanmak için kullanılacak tek bir arabirim yok.

Bağlandığınız hedefe bağlı olarak, sisteminiz bir sonraki umudu/yönlendiriciyi bulmak için ip tablosuna (route komutu yaptığınızda gösterilene) bakar, bir tane bulduğunda arayüzü kullanır ile ilişkili.

Bununla birlikte, lütfen tam olarak yaptığı gibi @ torgeir'in answer bölümüne bakın:

  1. Bir alan adı verildi (yanıttaki tek kötü nokta olan google.com olarak kodlandı)
  2. IP'sini çözer
  3. Kullanılacak yol için ip tablosuna (ve dolayısıyla arabirime) başvurur.
0
kdehairy

Linux, Unix, Microsoft Windows'un bazı sürümleri ve diğer birçok İşletim Sisteminin farklı dağıtımları, internete erişmek için yalnızca bir ağ arabirimi kullanmakla sınırlı değildir. Birçok İşletim Sistemi, İnternet'e erişebilen birden fazla geçerli bir arabirim algılar ve her birini internete (özellikle de İnternet'e bağlanan ağ geçitleri) trafik taşımak üzere ayarlar. İşletim sistemi harici bir ağa ulaşmaya çalışırsa ve eth0 Kullanarak başarılı olursa, o arabirimi yönlendirme tablosuna ekler ve ağa bağlar. İşletim sistemi aynı harici ağa ulaşmaya çalışırsa ve eth1 Kullanarak başarılı olursa, o arabirimi (eth1) Yönlendirme tablosuna aynı ağa ulaşmak için ek bir yol olarak ekler. Şimdiye kadarki diğer posterler, bir yönlendirme tablosundaki metrik değerlerin önemini dikkate almamıştır. Aşağıdaki yönlendirme tablomda iki farklı arayüz var: eth0 Ve wlan0. Her ikisi de hazır, her ikisi de işletim sistemi tarafından ağ geçidine varsayılan yollar olarak 192.168.1.1 Otomatik olarak ayarlandı ve her ikisinin de işletim sistemi tarafından 192.168.1.X Ağına otomatik olarak oluşturulmuş bir yolu vardı. Tüm yönlendirme tablosu işletim sistemi tarafından otomatik olarak yazılmıştır. Benim için hiçbir düzenleme yapılmadı. Burada gösterilen fark, kablolu ethernet arayüzünün (eth0) Daha düşük bir metriğe (202) sahip olması ve dolayısıyla benimkinin dışındaki düğümlere olan trafiğimin daha fazla bu arayüz üzerinden yönlendirilmesidir ( metrik), kendi düğümüm dışındaki düğümlere olan trafiğimin geri kalanı kablosuz arayüz (wlan0) üzerinden yönlendirilir (303 daha yüksek bir metriğe sahiptir ve bu nedenle işletim sistemi tarafından daha az tercih edilir).

[email protected]:~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
default         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0

Her iki arabirim de "internet" e erişmek için kullanılıyor ve kullanımları, aşağıdaki eth0 ve wlan0 bayt ve paket istatistiklerinde görülebileceği gibi "Metrik" değerlerle ağırlıklandırılıyor:

[email protected]:~ $ ip -s address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope Host 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0       
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:31:a2:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.195/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
       valid_lft 80787sec preferred_lft 69987sec
    inet6 fe80::2f3f:3f1d:8c35:a05e/64 scope link 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    14341060   22393    0       0       0       971     
    TX: bytes  packets  errors  dropped carrier collsns 
    1190274    10745    0       0       0       0       
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether dc:a6:32:31:a2:c8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.193/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
       valid_lft 80787sec preferred_lft 69987sec
    inet6 fe80::4f31:5fcf:8f70:b5ca/64 scope link 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    4963408    7954     0       0       0       929     
    TX: bytes  packets  errors  dropped carrier collsns 
    49371      235      0       0       0       0       

İşletim sistemi tarafından eth0'a daha fazla trafik verildiğini görmek kolaydır. Birçok İşletim Sistemi, daha hızlı bağlantıya sahip bir kablolu arabirime daha düşük bir metrik ve daha yavaş bir bağlantıya sahip bir kablolu arabirime daha yüksek bir metrik verecektir. Örneğin, hem eth0 Hem de eth1 Aynı düğüme bağlanırsa, ancak eth0 100 mb'lik bir bağlantı için anlaştıysa ve eth1 Yalnızca 10 mb'lik bir bağlantı üzerinde anlaştıysa , eth0 İçin eth1 'Dan daha düşük bir metrik verilecek. Benzer şekilde, birçok İşletim Sistemi kablolu arabirime daha düşük bir metrik ve kablosuz arabirime daha yüksek bir metrik verecektir.

Yönlendirme tablosuna girişler yaparak/düzenleyerek aynı harici düğüme ulaşmak için birden fazla arabirim otomatik olarak (işletim sistemine bağlı olarak) veya manuel olarak ayarlanabilir.

0
Just Jeff