Bir uygulamayı belirli bir ağ arayüzü kullanmaya zorla


48

Birden çok ağ arabirimi kullanıyorum (LAN ve Kablosuz) ve tercih edilen arabirimlerin sırasını değiştirmenin bir yolu olduğunu fark ettim. Kablolu ağı çalışmak, e-postalarınızı kontrol etmek ve benzeri işlemleri (güvenli bir şekilde) yapmak ve başka şeylere erişmek için kablosuz VLAN'ı nasıl kullanabilirim (aksi takdirde bağlantı noktaları ve bazen websense tarafından engellenebilir)?

Yanıtlar:


22

İşin püf noktası, yönlendirme tablolarını ayarlıyor (bu, hedef bağlantı noktasına veya kaynak uygulamaya bağlı değil, ancak hedef ana bilgisayara bağlı). Bu, Linux veya OS X’de olduğunuzu varsayar (etiketlerin gösterdiği gibi).

Varsayılan ağ geçidinizin 1.2.3.4 olduğunu ve trafiği 6.7.8.9’da yönlendirebilen bir vpn’niz olduğunu söyleyin. Posta trafiğinizin 6.7.8.9’dan fazla yönlendirilmesini istiyorsanız, yalnızca

sudo route add mail.myserver.com 6.7.8.9

Rotanın bazı sürümleri, adres ve bir sonraki atlama arasında bir "gw" anahtar kelimesi gerektirebilir. Bir sonraki atlamada tam bir net rota oluşturmak istiyorsanız, hedef için CIDR notasyonuna bir ağ maskesi ekleyin.

sudo route add 192.168.0.0/24 6.7.8.9

Mevcut yönlendirme tablosunu görüntülemek istiyorsanız,

netstat -nrl
or
ip route list

Eğer Windows kullanıyorsanız, "net route" sizi en çok oraya götürecektir, ancak sözdizimi tamamen farklıdır.


17
Bu gerçekten bir cevap değil mi? Soru, bir web sitesini değil, bir uygulamayı zorlamaktır. Örneğin, Safari’nin VPN’den (ppp0) geçmesini, ancak Firefox’un hangi siteye eriştiğinden bağımsız olarak tr’i geçmesini istedim? Soru bu.
gman

2
@gman: Bu cevapla ilgili hiçbir şey web sitelerine özgü değildir.
Monica ile Hafiflik Yarışları

3
OP, uygulama programına göre ağ arayüzü seçmek istiyor. Bu cevap, hedef ana bilgisayara göre nasıl seçim yapılacağını gösterir.
Bennett McElwee,

Bunu reddetmeyeceğim (başka bir soru için bu iyi bir tavsiyedir), ama kesinlikle bunu da reddedemeyeceğim (@gman ve @ bennett-mcelwee tarafından belirtilen nedenlerle).
sıçan derisi

Yukarıdakilere göre, bu, belirli bir uygulamanın belirli bir NIC'ye nasıl kilitleneceği sorusuna cevap vermez.
Kasım’da

6

Sadece iki NIC'nin aynı anda aktif olmasını istiyorsanız, Servis Cihazını, ağ aygıtları listesinin altındaki ekipmanı seçerek Sistem Tercihleri ​​/ Ağ içinden ayarlayabilirsiniz. İstediğiniz sırayı sürükleyip bırakın.

Örneğin, MBP'mde her zaman etkin olan Ether (Wi-Fi) özellikli Ether (Wi-Fi) ayarlarına sahip Ether ve WiFi'im var. Ether'ı işte kullandığımdan beri, bu NIC'yi proxy ayarlarıyla ve Wi-Fi cihazım olmadan kurdum. Eve gittiğimde herhangi bir ayar yapmanıza gerek yok. Bunu terminal kullanarak da yapabilirsiniz /usr/bin/networksetup -ordernetworkservices.

Ancak hem aktif hem de bir uygulamanın varsayılan olmayanı kullanması nedeniyle, @ Andor'un tavsiyesinde biraz daha kolay bir dönüş şansı yakaladım. Bir uygulamanın benim durumumda Ether kullanmamasını istiyorsanız, uygulamanın proxy ayarlarını wi-fi adaptörümün IP adresine ayarlıyorum. Çıkmak için bu arayüzü kullanacak ve bu şekilde şirketin vekil ve izleme sunucularını atlayacak. Eğer Ether 1.2.3.4 bir adrese sahipse ve servis siparişinde Wi-Fi'den (5.6.7.8) önce gelirse, uygulama vekilim 5.6.7.8'e sahibim.


5

Mac için kullandığım basit bir çözüm var. Aslında @ Andor'un çözümünün bir uygulaması. Bir proxy kurun ve uygulamalarınızı kullanacak şekilde yapılandırın:

  1. Ben yüklü SquidMan

  2. Yapılandırmada aşağıdaki satırı ekleyin. Özel uygulamalarınız için kullanacağınız ipi belirtmeniz gerekir x.x.x.x:

    tcp_outgoing_address x.x.x.x
    
  3. SquidMan'ı başlatın ve uygulamanızı bir proxy olarak kullanacak şekilde yapılandırın.

Bu bilgiyi farklı sayfalarda bulmak için bir saatimi harcadım, bu yüzden başkalarının daha hızlı yapmasına yardımcı olacağını umuyorum.


Aynı Windows üzerinde çalışması gerekir ve tek şık çözüm gibi görünüyor!
TJJ

1

Muhtemelen düşük seviyeli IO kontrol fonksiyonlarını kullanmanız gerekecektir (ioctl). Özellikle:

ioctl( socket, SIOCGIFADDR, ... ); // Get network interface address

ve

ioctl( socket, SIOCSIFADDR, ... ); // Set network interface address

Daha fazla bilgi için bu kılavuz sayfasına bakınız.


1

Sorun şu ki, ağ bağlantınıza birden fazla ağ geçidi olacak ve bu yönetimi biraz zor ...

Bazı sunucu veya ağ bağlantılı unix ve linux araçlarında genellikle "arabirim" adı verilen ve tcpdump'ta olduğu gibi hangi arayüzü kullanmak istediğinizi söyleyebileceğiniz bir bayrak bulunur:

tcpdump -i eth0

Ancak, standart masaüstü yazılımlarını yönlendirme hakkında sorduğunuzu düşündüğüm için, bu biraz daha zorlaşıyor ...

Yine de sana bunun için bir numara söyleyebilirim ... Bu sorunlarla başa çıkmak için her zamanki fikrim bir vekil kullanmak ve sadece bir ağ geçidi kullanmak. Bugünlerde İnternet kullanan hemen hemen her yazılım bir proxy yapılandırmak için seçeneklere sahiptir, bu nedenle aşağıdaki yollardan birini yapabilirsiniz:

1.- Ağınızın "teminatsız" (yani, politikaların uygulanmadığı durumlarda) proxy'si ayarlamak ve yazılımınızı bu proxy'ye yönlendirmek.

2.- SSH sunucusunu evinizde veya internette sahip olduğunuz tahsisli bir başka sunucuda ayarlamak, yani SSH'nin çorap proxy sunucusu yaratan özel bir özelliği ile bağlantı açmak:

ssh -D 1234 user@host

Bu, bilgisayarınızda "1234" bağlantı noktasında "ana bilgisayarınıza" bağlanacak, "kullanıcınızı" kullanarak bağlantı kuracak bir çorap proxy sunucusu oluşturur ve Internet'e "ana bilgisayarınızın" sahip olduğu bağlantı üzerinden gider ... Sonra, Yerel yazılımınızda, yalnızca proxy yapılandırma araçlarını açmanız ve localhost: 1234'ü işaret etmeniz yeterlidir.

Kurumsal internet politikalarından kaçınmanın güzel püf noktaları: P

: D


1

İş uygulamalarımı sanal bir makinede çalıştırıyorum. Yukarıdaki talimatları WiFi'yi tercih edilen bağlantı olarak ayarlamak için kullandım, sonra sanal makineyi ethernet portunu "Köprülü" bir adaptör olarak kullanacak şekilde yapılandırdım.

Sanal makinenin içinde çalışan herhangi bir şey artık ethernet portuna bağlı. WiFi, bağlı bir WiFi bağlantım olduğu sürece, diğer tüm uygulamalar için (sanal makinenin dışındaki) tercih ettiğim bağlantı.

Bir uygulamanın belirli bir ethernet portuna bağlanmasını zorlamak için kullanılabilecek ancak MacOS için araştırma yapmadığına inanıyorum.

Önceden bahsedilen yönlendirme metodu "sıradan kişi" için biraz karmaşıktır, ancak özellikle bağlantılarınızda aynı IP adresini tekrar tekrar alırsanız, iyi bir uygulanabilir yaklaşım gibi görünüyor.


0

Bu soru OSX için olsa bile, Windows 7 64-bit üzerinde çalışan aşağıdakileri burada bırakacağım. Bu soru, zorla uygulamaların belirli bir adaptörden geçmesi için googling yaparken en önemli sonuçlardan biri olarak ortaya çıktı , bu nedenle aşağıdakiler başkaları için faydalı olabilir.

http://www.howtogeek.com/117890/how-to-force-an-application-to-use-a-specific-network-card/

Yukarıdaki kılavuz, üzerinde çalışması için ilan edilen ForceBindIp adında bir yardımcı program kullanıyor , Windows NT/2000/XP/2003 ancak Windows 7 - 64 Bit'te çalışması için hiçbir sorun yaşamadım.

Ayrıca, Windows 7'de ForceBindIP ile İlgili Sorunlar (x64)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.