Netcfg
Netcfg, profiller yardımıyla ağ bağlantılarını yapılandırmak ve yönetmek için kullanılır. Kablosuz, ethrenet ve ppp gibi oldukça geniş bir yelpazede bağlantı türüne destek sunar. Tek veya aynı profildeki bir çok bağlantıyı durdurma veya başlatma yeteneğine de sahiptir.
netcfg, birden çok ağ yapılandırmasını basit ve hızlı biçimde yönetmeyi arzulayan kullanıcılar (örneğin dizüstü bilgisiyar kullanıcıları) için idealdir. Tek bir ağa bağlanan sistemler için network artsürecini kullanmak daha uygun olabilir.
Hazırlık
En kolay durumda, kullancılar kendi ağ arayüzlerinin adını bilmek zorundadırları (mesela eth0, wlan0). Durağan IP yapılandırılıyorsa öntanımlı gateaway ve ad sunucularının IP adresleri de bilinmelidir.
Kablosuz bir ağa bağlanılacaksa bazı temel bilgiler hazırda olmalıdır. Bunlar hangi türde şiferelemenin kullanıldığı, ağ adı (ESSID) ve parola veya şiferleme anahtarıdır. Ek olarak kablosuz ağ aygıtı için uygun sürücüler ve donanım yazılımlarının kurulu olduğundan emin olunmalıdır.
Kurulum
En güncel netcfg sürümünün kurulu olduğundan emin olun. Eski sürümler daha fazla hata içerebilir ve güncel sürücüler ile uyumlu çalışmayabilir. netcfg paketi resmi paket depolarından kurulabilir.
netcfg sürüm 2.5.x, itibaren seçimlik bağımlılıklar wpa_actiond – otomitk kablosuz bağlantılar için gereklidir- ve ifplugd –otomatik Ethernet bağlantısı için gereklidir- paketleridir.
Netcfg için Bash tamamlama desteği istiyorsanız depolardan bash-completion paketini kurun
Yapılandırma
Ağ profilleri /etc/network.d dizininde depolanır. Olası hataları azaltmak için örnek bir yapılandırma dosyasını /etc/network.d/examples/ dizininden /etc/network.d/mynetwork dizinine kopyalayın. Dosya adı ağ profilinzle aynı olmalıdır. ("mynetwork" bu yazı boyunca örnek kabilinden kullanılacaktır). İsim bir ağ ayarı değildir ve kablosuz ağ adınızla aynı olmak zorunda da değildir.
Bağlantı türü ve güvenliğine bağlı olarak /etc/network.d/examples dizininden örnek yapılandırmaları bir temel olarak kullanın. İnternetten bulacağınız yapılandırmaların çoğunlukla artık kullanılmayan seçenekleri barındırabileceğini ve sorunlara yol açabileceğini unutmayın.
| Bağlantı türü ve güvenliği | Örnek profil |
|---|---|
| Kablosuz; WEP sayısal anahtar | wireless-wep
|
| Kablosuz; WEP söz dizimi anahtar | wireless-wep-string-key
|
| Kablosuz; WPA-Kişisel (anahtar parolası/önceden paylaşılmış anahtar) | wireless-wpa
|
| Kablosuz; WPA-Kurumsal | wireless-wpa-config (wpa_supplicant yapılandırması dışarıdan yapılmalı) wireless-wpa-configsection (wpa_supplicant yapılanması söz dizimi olarak depolanmış)
|
| Kablolu; DHCP | ethernet-dhcp
|
| Kablolu; durağan IP | ethernet-static
|
| Kablolu; iproute yapılandırması | ethernet-iproute
|
Sonrasında yeni yapılandırma dosyasını,/etc/network.d/mynetwork, yapılandırın:
-
INTERFACEdeğerini doğru kablosuz veya Ethernet arayüzü olarak ayarlayın. Buip linkveiwconfigkomutlarıyla bulunabilir.. - Kablosuz bağlantılar için
ESSID(ağ adı) veKEY(parola) değerlerinin doğru ayarlandığından emin olun. Yanlış yazım en çok karşılaşılan hata türüdür.- WEP söz dizimi anahtarları (sayısal anahtarlar değil)
s:baresi önüne eklenerek yazılmalıdır. (meselaKEY="s:somepasskey").
- WEP söz dizimi anahtarları (sayısal anahtarlar değil)
Kullanımı
Bir profile bağlanmak için:
# netcfg mynetwork
Bir profilin bağlantısını kesmek için:
# netcfg down <profil adı>
Başarılı olursa, kullanıcılar netcfg'yi kendiliğinden veya açılış sürecinde bağlanacak şekilde ayarlayabilirler. Bağlantı başarısız olursa, çözümler ve yardım almak için #Sorun giderme bölümüne bakın.
Diğer işlevleri öğrenmek için:
$ netcfg help
Kendiliğinden bağlanmak
Kullanıcıların ağ profillerinin kendiliğinden bağlanması için bir çok yöntem mevcuttur. Ancak öncelikle /etc/network.d dizininde ağ profilinin doğru biçimde yapılandırılmış olması gerekir.(bkz #Yapılandırma).
net-profiles
net-profiles kullanıcıların önyükleme sürecinde ağa bağlanmalarını sağlar.
Bu özeliği etkinleştirmek için kullanıcılar /etc/rc.conf dosyasındaki DAEMONS satırında net-profiles eklemeli ve NETWORKS satırında denenecek profilleri listelemelidirler:
/etc/rc.conf
NETWORKS=(mynetwork yournetwork) ... DAEMONS=(... net-profiles ...)
Bir başka yöntem de, net-profilesin –kullanıcıların arzu ettikleri profili seçebilmelerine imkan sağlamak üzere – bir menü görüntülemesini sağlamaktır. Bu ise NETWORKS satırının içeriğini menu olarak ayaralmak suretiyle yapılır:
/etc/rc.conf
NETWORKS=(menu) ... DAEMONS=(... net-profiles ...)
Ek olarak dialog sistemde kurulu bulunmalıdır.
net-auto-wireless
net-auto-wireless kullanıcıların kablosuz bağlantılara uygun dolaşım desteği ile kendiliğinden bağlanabilmelerini sağlar.
Bu özelliği etkinleştirmek için /etc/rc.conf dosyasındaki DAEMONS satırına net-auto-wireless artsürecini ekleyin:
/etc/rc.conf
DAEMONS=(... net-auto-wireless ...)
Ve arzu ettiğiniz kablosuz ağ arayüzünü WIRELESS_INTERFACE değişkeni ile belirleyin:
/etc/conf.d/netcfg
WIRELESS_INTERFACE="wlan0"
/etc/conf.d/netcfg dosyasında kendilinden bağlanılacak kablosuz ağların bir listesi tanımlanabilir. Böyle bir liste kullanılmamışsa tüm kablosuz ağlar denenecektir.
Ek olarak wpa_actiond paketi sistemde kurulu bulunmalıdır. wireless-wpa-config profillerinin net-auto-wireless ile çalışmayacağını hatırınızdan çıkarmayın. Bunları wireless-wpa-configsection profiline dönüştürün.
net-auto-wired
net-auto-wired kullanıcıların kendiliğinden kabloul ağlara bağlanmasını sağlar.
Bu özelliği kullanabilmek için öncelikle ifplugd paketini kurmalı, sonra da /etc/rc.conf dosyası içerisindeki DAEMONS satırına net-auto-wired artsürecini ekleyerek arzu ettiğinz kablolu ağ arayüzünüt WIRED_INTERFACE değişkeninde göstermelisiniz:
/etc/rc.conf
WIRED_INTERFACE="eth0" ... DAEMONS=(... net-auto-wired ...)
Artsüreçe, kablolu bağlantının durumu değiştiğinde (mesela kablo takıldığında veya çıkartıldığında)/etc/ifplugd/netcfg.action dosyasını çalıştıran bir ifplugd süreci başlatır. Kablo takıldığında biri başarılı oluncaya kadar herhangi bir profil CONNECTION = "ethernet" veya "ethernet-iproute" ve INTERFACE = WIRED_INTERFACE ile başlatılmaya çalışılır.
Öneriler ve İpuçları
Bağlanmadan önce iwconfig üzerine yönerge geçirmek
Basitçe aşağıdakini profile ekleyin:
IWCONFIG="<yönergeler>"
<yönergeler> herhangi bir iwconfig anahtarı olabilir. Betik daha sonra iwconfig $INTERFACE $IWCONFIG komutun çalıştırır.
Örneğin, kartı MAC adresinin verdiği belirli bir erişim noktasına kaydolması için zorlamak:
IWCONFIG="ap 12:34:56:78:90:12"
Bu eksik olarak eklenmiş bulunan IWOPTS ve WEP_OPTS seçeneklerinin önüne geçer.
rfkill (anten gücünü etkinleştirme/devredışı bırakma)
netcfg, anteni denetleyen yazılım ile gelen kablosuz ağ kartlarında anteni etkinleştirebilir veya devre dışı bırakabilir. Donanım anahtarları bulunan kablosuz ağ kartlarında devre dışı bırakılmış donanım anahtarlarını algılayabilir ve buna uygun olarak başarısız iletisi verir.
rfkill desteğini sağlamak için kablosuz arayüzün ne tür bir anahtarı bulunduğunu belirlemelisiniz; donanım mı yoksa yazılım mı? Bu bir profil ile veya arayüz seviyesinde (/etc/network.d/interfaces/$INTERFACE; bkz #Her arayüze ayrı yapılandırma ayarlanabilir).
RFKILL=soft # 'hard' veya 'soft' olabilir
/sys içerisindeki rfkill girdisinde bazı kill anahtarları arayüz ile bağlantılı değildir ve RFKILL_NAME değişkeninin eşleşen /sys/class/rfkill/rfkill#/name içeriğine ayalanması gerekir.
Örneğin bir Eee PC üzerinde:
RFKILL=soft RFKILL_NAME='eeepc-wlan'
Bir mid-2011 Thinkpad üzerinde:
RFKILL=hard RFKILL_NAME='phy0'
Arayüzün bağlanmasında veya bağlantı kesilmesinden önce veya sonra komut çalıştırmak
Kullandığınız arayüz bağlantı açılışı veya kapanışından önce veya sonra özel eylemler gerektiriyorsa PRE_UP, POST_UP, PRE_DOWN, ve POST_DOWN değişkenlerini kullanmalısınız.
Örneğin, kablosuz ağ kartınızın ad-hoc kipinde çalışmasını istiyor ve bunu sadece bağlantı yokken yapabiliyorsanız şöyle bir şey kullanabilirsiniz:
PRE_UP="ip link set wlan0 down; iwconfig wlan0 mode ad-hoc"
veya başarılı bir bağlantıdan sonra ağ paylaşımlarınızı bağlamak istiyorsanız şunu kullanabilirsiniz:
POST_UP="sleep 5; mount /mnt/shares/nexus/utorrent 2>/dev/null"
Bazen de netcfg' nin diğer bir kullanıcı hesabıyla işlem yapmasını istiyebilirsiniz:
POST_UP="su -c '/çalıştırılmasını/owistediğiniz/komut' kullanıcı adı"
Sık bağlantı kopması
Bazı donanım ve sürücü bileşimleri bağlantıların sıklıkla kopmasına yol açabilir. Pre ve post komutlarını kullanarak sürücünün yüklenmesini/kaldırılmasın sağlayabilir ve şu anki bağlantıyı düzeltmek için aşağıdakine benzer bir betik kullanabilirsiniz:
/usr/local/bin/netcfgd
#!/bin/bash
log() { logger -t "$( basename $0 )" "$*" ; }
main() {
local host
while sleep 1; do
[[ "$( netcfg current )" = "" ]] && continue
host=$( route -n | awk '/^0.0.0.0/ { print $2 }' )
ping -c 1 $host && continue
log "trying to reassociate"
wpa_cli reassociate
ping -c 1 $host && continue
log "reassociate failed, reconfiguring network"
netcfg -r $( netcfg current )
done
}
exec 1>/dev/null
[[ $EUID != 0 ]] && { log "must be root"; exit 1; }
for cmd in wpa_cli ping netcfg; do
! which $cmd && {
log "can't find command ${cmd}, exiting..."
exit 1
}
done
log 'starting...'
main
Her arayüze ayrı yapılandırma
Bütün profillere uygulanacak yapılandırma ayarları /etc/network.d/interfaces/$INTERFACE kullanılarak ayarlanabilir. Örneğin:
/etc/network.d/interfaces/wlan0
Bu, wpa_supplicant seçenekleri, rfkill anahtar desteği, pre/post up/down betikleri ve net-auto-wireless için faydalı olabilir. Bu seçenekler profillerden önce yüklenir. Böylece profil temelli tüm seçenekler öncelik kazanır.
/etc/network.d/interfaces/$INTERFACE herhangi geçerli bir profil seçeneğini içerebilir, buna rağmen PRE_UP/DOWN ve POST_UP/DOWN (bir önceki bölümde bunlar açıklanmıştı) veya aşağıda listelenen seçeneklerden birini kullanmanız gerekir. Bu seçeneklerin aynı arayüzü kullanan tüm profiller için ayarlandığını ve mesela iş VPN bağlantınızı buna bağlamamanız gerektiğini unutmayın (aksi takdirde bu VPN tüm kablosuz ağa bağlanır!).
WPA_GROUP - Setting the group of the wpa_ctrl interface WPA_COUNTRY - Enforces local regulatory limitations and allows use of more channels WPA_DRIVER - Defaults to wext, may want nl80211 for mac80211 devices
Çıktı Kancaları
netcfg, çıktıyı işleyecek yükleme kancalarına sınırlı destek verir. Öntanımlı olarak gördüğünüz çıktıya benzer bir çıktı sunan arch kancasını yükler. Bir syslog günlükleme kancasıda mevcuttur. Bunlar, /usr/lib/network/hooks altında bulunabilir.
ArchAssistant (Grafiksel Önyüz)
ArchAssistant adında netcfg için bir Qt-temelli grafiksel önyüz mevcuttur. Bu önyüz sistem tepsisinden profillerin bağlanmasını, bağlantının kesilmesini ve yönetimini sağlar. Kendiliğinden kablosuz ağları da algılayabilir. Bu araç özellikle dizüstü bilgisayar kullanıcıları için faydalıdır.
Bağlantılar:
- AUR üzerindeki archassistant paketi.
- kde-apps.org bağlantısı
Bundan başka qt-apps.org sitesinde daha yeni olan ancak şimdilik sadece ağ yapılandırmasını sağlayan netcfgGUI adlı bir önyüz de mevcuttur.
wifi-select
Komut satırında kullanılabilecek bir araç arayanlar için "gerçek zamanlı" (NetworkManager benzeri davranışta) kablosuz ağ seçmek için wifi-select aracı uygundur. Bu araç, internet cafeler veya misafirliğe gittiğiniz ev gibi ilk (ve belki de son) kez gittiğiniz yerler için yeterlidir. Bu araç ile yeni bir ağ için bir profil oluşturmanız gerekmez. Sadece kök kullanıcı yetkileriyle wifi-select wlan0 komutunu çalıştırın ve istediğiniz ağı seçin.
Bu araç wifi-select adıyla paketlenmiş olup Resmi Depolardan indirilebilir.
wifi-select şunları gerçekleştirir:
-
iwlist scansonuçlarını ayrıştırır ve dialog kullanarak güvenlik ayarlarıyla (WPA/WEP/yok) birlikte ağların bir listesini sunar. - kullanıcı mevcut bir profilde düzenlenmiş bir ağı seçerse sadece netcfg ile bu profili kullanarak bağlanır.
- kullanıcı yeni bir ağ seçerse, wifi-select kendiliğinden bir profil üreterek gerekliyse bağlanmak için parolayı sorar. Öntanımlı olarak
$IPdeğeri için DHCP kullanır. Bağlantı başarılı olursa, üretilen profil sonraki kullanımlar için depolanır. - bağlantı başarısız olursa kullanıcıya üretilen profilin sonraki kullanımlar için depolanıp depolanmayacağı sorulur.
Bağlantılar:
- wifi-select geliştirmesi ile ilgili forum konusu
- wifi-select Mercurial deposu
- wifi-select on GitHub
Argümanları dhcpd üzerine geçirmek
Örneğin, istediğiniz profile
DHCP_OPTIONS='-C resolv.conf -G'
satırını ekleyin. Bu örnek dhcpcdnin /etc/resolv.conf dosyası üzerine yazmasını engeller ve tüm öntanımlı dolaşımları ayarlar.
dhcpcd yerine dhclient kullanımı
dhcpcd yerine dhclient kullanmak için arzu ettiğiniz profile DHCLIENT=yessatırını ekleyin.
Sanal makinelerle kullanmak üzere bir köprü yapılandırmak
Durağan IP adresine sahip br0 adlı bir köprü yapılandırmak için:
/etc/network.d/br0
INTERFACE="br0" CONNECTION="bridge" DESCRIPTION="bridge br0 static" BRIDGE_INTERFACES="eth0" IP='static' ADDR='10.0.0.10' GATEWAY='10.0.0.1' DNS='10.0.0.1'
dhcp IP adresine sahip br0 adlı bir köprü yapılandırmak için:
/etc/network.d/br0
INTERFACE="br0" CONNECTION="bridge" DESCRIPTION="bridge br0 dhcp" BRIDGE_INTERFACES="eth0" IP='dhcp'
Daha sonra eşleşen köprü ismini /etc/rc.conf dosyasındaki NETWORKS=(...) satırına ekleyin.
Köprü doğrudan çağrılarak kullanılabileceği gibi net-profiles artsürecinin yeniden başlatılması yoluyla da kullanılabilir:
netcfg br0
rc.d restart net-profiles
Tek arayüze birden fazla IP eklemek
Tek bir belirli arayüze birden çok IP atamak istiyorsanız, bir POSTUP deyimine uygun ip komutunu atamalısınız (böylece arayüz kullanılmaya başlandıktan sonra ip komutu çalışacaktır.).Birden fazla deyim noktalı virgül(;) ile birbirinden ayrılmalıdır. Mesela hem 10.0.0.1 hem de 10.0.0.2 IP adreslerini eth0 arayüzüne atamak istediğinizde yapılandırma şuna benzeyecektir:
/etc/network.d/multiple_ip
INTERFACE="eth0" CONNECTION="ethernet" IP='static' ADDR='10.0.0.1' POST_UP='ip addr add 10.0.0.2/24 dev eth0'
Durağan dolaşım eklemek
Durağan dolaşım eklenmek istendiğinde bu işlem bir POSTUP deyiminde ip komutunun kullanılması ile gerçekleştirilir. Ek olarak istenirse bağlantı kesildiğinde belirtilen dolaşımların kaldırılması için bir PRE_DOWN deyimi de kullanılabilir. Birden fazla deyim noktalı virgül (;) ile ayrılabilir. Aşağıdaki örnekte eth1 üzerinde 10.0.1.0/24 dolaşımını sağlanmakta ve arayüzün ağla bağlantısı kesildğinde dolaşım kaldırılmaktadır:
/etc/network.d/static_routes
INTERFACE="eth1" CONNECTION="ethernet" IP='static' POST_UP='ip route add 10.0.1.0/24 dev eth1' PRE_DOWN='ip route del 10.0.1.0/24 dev eth1'
Sorun giderme
Hataları belirleme
netcfg' yi hata belirleme çıktısını verecek şekilde çalıştırmak için NETCFG_DEBUG ortam değişkenini "yes" olarak ayarlayın, mesela:
# NETCFG_DEBUG="yes" netcfg <arguments>
wpa_supplicant için hata belirleme bilgisi, bir profilde WPA_OPTS kullanılarak günlüklenebilir. Mesela:
WPA_OPTS="-f/path/to/log"
Buraya ne eklenirse wpa_supplicant komutu çağrıldığında çalıştırılır.
Ağa erişilemiyor
Bu hata şu iki nedenden birinden kaynaklanır:
- Kapsama alanı dışındasınız
- Sürücü sorunlu
Kablosuz eşleştirme başarısız (Wireless association failed)
Bu hata şu beş nedenden birinden kaynaklanır:
- Kapsama alanı dışındasınız veya çekim gücü düşük
- Sürücü sorunlu
- Hatalı yapılandırma;
- IGeçersiz parola anahtarı;
- Gizli bir ağa bağlanılmaya çalışılıyor
Bağlantı sorunu düşük çekim gücünden kaynaklanıyorsa /etc/network.d/mynetwork dosyasındaki TIMEOUT değişkeninin değerini arttırın, örneğin:
TIMEOUT=60
Gizli ağ kullanılıyorsa:
PRE_UP='iwconfig $INTERFACE essid $ESSID'
DHCP ile bir IP adresi alınamıyor (Unable to get IP address with DHCP)
Bu hata şu nedenden kaynaklanır:
- Kapsama alanı dışındasınız veya çekim gücü düşük
/etc/network.d/profile dosyasındaki DHCP_TIMEOUT değişkeninin değerini arttırın.
Geçreli bir bağlantı değil, yazım hatalarını denetleyin veya örnekler bakın (Not a valid connection, check spelling or look at examples)
CONNECTION değerini /usr/lib/network/connections dizini altında listelenen bağlantı çeşitlerinden bir olarak ayarlamalısınız. Farklı olarak /etc/network.d/examples dizini içindeki örnek dosyalardan birini de düzenleyerek kullanabilirsiniz.( Bu yazının çevirmeni bahsedilen ikinci yöntemi sorunsuz uygulamaktadır. Ç.N)
Bağlantı Yok (No Connection)
Aşağıdakine benzer hata günlükleme iletileri alıyorsanız, arayüzün bağlanma süreci gereğinden uzun sürüyor olabilir.
DEBUG: Loading profile eth0-dhcp DEBUG: Configuring interface eth0 :: eth0-dhcp up DEBUG: status reported to profile_up as: DEBUG: Loading profile eth0-dhcp DEBUG: Configuring interface eth0 DEBUG: ethernet_iproute_up ifup > No connection DEBUG: profile_up connect failed [FAIL]
Öntanmılı olan 2 saniyedir.
Zamanaşımı süresini uzatmak için CARRIER_TIMEOUT değişkenini netcfg' yi çalıştırmadan önce ayarlayın.
Aşağıdaki Arch Linux Forum başlığı bu soruna dair bir örnektir (İngilizce): https://bbs.archlinux.org/viewtopic.php?id=138615
Sürücüler için normal olmayan yöntemler
Some drivers behave oddly and need workarounds to connect. Quirks must be enabled manually. They are best determined by reading the forums, seeing what others have used, and, if that fails, trial and error. Quirks can be combined.
-
prescan - Run
iwlist $INTERFACE scanbefore attempting to connect (Broadcom) -
preessid - Run
iwconfig $INTERFACE essid $ESSIDbefore attempting to connect (ipw3945, Broadcom and Intel PRO/Wireless 4965AGN) -
wpaessid - Same as previous, run before starting
wpa_supplicant. Not supported anymore - useIWCONFIG="essid $ESSID"instead. (ath9k) -
predown - Take interface down before association and then restore it after (madwifi)
-
postsleep - Sleep one second before checking if the association was successful
-
postscan - Run
iwlist scanafter associating
Add the required quirks to the netcfg configuration file /etc/network.d/mynetwork, for example:
QUIRKS=(prescan preessid)
If you receive "Wireless network not found", "Association failed" errors and have tried the above, or if an AP with a hidden SSID is used, see the above section #Wireless association failed.
Ralink legacy drivers rt2500, rt2400 that use iwpriv
There is no plans to add WPA support to these drivers. rt2x00 is supported, however, and will replace these.
If you must use them, create a shell script that runs the needed iwpriv commands and put its path in PRE_UP.
find: "/var/run/network//suspend/": No such file or directory
If you get this error message, then do not bother because it is a known bug. Create the directory by hand.
It still does not work, what do I do?
If this article did not help solve your problem, the next best places to ask for help are the forums, the mailing list, and the #archlinux IRC channel.
To be able to determine the problem, we need information. When you ask, provide the following output:
- ALL OUTPUT FROM netcfg
- This is absolutely crucial to be able determine what went wrong. The message might be short or non-existent, but it can mean a great deal.
-
/etc/network.dnetwork profiles- This is also crucial as many problems are simple configuration issues. Feel free to censor your wireless key.
- netcfg version
-
lsmod -
iwconfig
FAQ
/usr/lib/network for re-usable functions for custom scripts.
/etc/hosts and the HOSTNAME variable in /etc/rc.conf, which are both still required. You may remove network from the DAEMONS array if you have configured all of your networks with netcfg, though.