FreeBSD🏀 Tuning🐹 13. Yapılandırma ve Ayarlama🍕

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 49

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0

Bölüm 13. Yapılandırma ve Ayarlama​


13.1. Özet​

FreeBSD'nin önemli yönlerinden biri uygun sistem yapılandırmasıdır. Bu bölümde, bir FreeBSD sistemini ayarlamak için ayarlanabilen bazı parametreler de dahil olmak üzere FreeBSD yapılandırma sürecinin çoğu açıklanmaktadır.
Bu bölümü okuduktan sonra şunları bileceksiniz:
  • <li data-xf-list-type="ul">rc.conf yapılandırmasının ve /usr/local/etc/rc.d başlangıç komut dosyalarının temelleri. <li data-xf-list-type="ul">Ağ kartı nasıl yapılandırılır ve test edilir. <li data-xf-list-type="ul">Ağ cihazlarında sanal konaklar nasıl yapılandırılır. <li data-xf-list-type="ul">/etc içindeki çeşitli yapılandırma dosyaları nasıl kullanılır? <li data-xf-list-type="ul">FreeBSD'yi değişkenleri kullanarak ayarlama. <li data-xf-list-type="ul">Disk performansını ayarlama ve çekirdek sınırlamalarını değiştirme.
Bu bölümü okumadan önce şunları yapmalısınız:
  • <li data-xf-list-type="ul">UNIX® ve FreeBSD temellerini ( ) anlayın. <li data-xf-list-type="ul">Çekirdek yapılandırması ve derlemenin temellerini öğrenin ( ).

13.2. Hizmetlerin Başlatılması​

Birçok kullanıcı, Bağlantı Noktaları Koleksiyonu'ndan FreeBSD'ye üçüncü taraf yazılımı yükler ve sistem başlatıldıktan sonra yüklü hizmetlerin başlatılmasını gerektirir. veya gibi hizmetler, sistem başlatma sırasında başlatılabilecek birçok yazılım paketinden sadece ikisidir. Bu bölümde, üçüncü taraf yazılımlarını başlatmak için kullanılabilen yordamlar açıklanmaktadır.
FreeBSD'de, ) gibi dahil edilen hizmetlerin çoğu sistem başlatma komut dosyaları aracılığıyla başlatılır.
<h4>13.2.1. Genişletilmiş Uygulama Yapılandırması</h4>Artık FreeBSD rc.d'yi içerdiğinden, uygulama başlangıcının yapılandırılması daha kolaydır ve daha fazla özellik sağlar. tartışılan anahtar sözcükler kullanılarak, uygulamalar diğer bazı hizmetlerden sonra başlayacak şekilde ayarlanabilir ve başlangıç komut dosyasındaki sabit kodlanmış bayraklar yerine /etc/rc.conf üzerinden fazladan bayraklar geçirilebilir. Temel komut dosyası aşağıdakine benzer görünebilir:
#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name=utility
rcvar=utility_enable

command="/usr/local/sbin/utility"

load_rc_config $name

#
# DO NOT CHAN AULT VALUES HERE
# SET THEM IN THE /etc/rc.conf FILE
#
utility_enable=${utility_enable-"NO"}
pidfile=${utility_pidfile-"/var/run/utility.pid"}

run_rc_command "$1"
Bu komut dosyası, sağlanan dosyanın sahte hizmetten sonra başlatılmasını sağlar. Ayrıca, işlem kimliğini (PID) ayarlamak ve izlemek için bir yöntem sağlar.utilityDAEMON
Bu uygulama daha sonra /etc/rc.conf dosyasına aşağıdaki satırı yerleştirebilir:
utility_enable="YES"
Bu yöntem, komut satırı bağımsız değişkenlerinin daha kolay değiştirilmesine, /etc/rc.subr dosyasında sağlanan varsayılan işlevlerin eklenmesine, ) ile uyumluluğa olanak tanır ve rc.conf aracılığıyla daha kolay yapılandırma sağlar.
<h4>13.2.2. Hizmetleri Başlatmak için Hizmetleri Kullanma</h4>Diğer hizmetler . ile çalışma ve yapılandırması bölümünde ayrıntılı olarak açıklanmıştır.
Bazı durumlarda, sistem hizmetlerini başlatmak için kullanmak daha mantıklı olabilir. Bu yaklaşımın bir dizi avantajı vardır, çünkü bu işlemleri in sahibi olarak çalıştırır. Bu, normal kullanıcıların kendi uygulamalarını başlatmasına ve sürdürmesine olanak tanır.
özelliği, zaman belirtimi yerine kullanılabilir. Bu, normalde sistem başlatma sırasında başlatıldığında işin çalışmasına neden olur.@reboot

13.3.

FreeBSD'deki en kullanışlı yardımcı programlardan biri cron'dur. Bu yardımcı program arka planda çalışır ve yürütülecek görevler için /etc/crontab'ı düzenli olarak kontrol eder ve özel crontab dosyaları için /var/cron/tabs'ı arar. Bu dosyalar, cron'un belirtilen zamanlarda çalıştığı görevleri zamanlamak için kullanılır. Bir crontab içindeki her girdi, çalıştırılacak bir görevi tanımlar ve cron işi olarak bilinir.
İki farklı yapılandırma dosyası türü kullanılır: değiştirilmemesi gereken sistem crontab ve gerektiğinde oluşturulabilen ve düzenlenebilen kullanıcı crontabs. Bu dosyalar tarafından kullanılan biçim . Sistem crontab, /etc/crontab biçimi, kullanıcı crontab'larında bulunmayan bir sütun içerir. Sistem crontab içinde, cron komutu bu sütunda belirtilen kullanıcı olarak çalıştırır. Bir kullanıcı crontab içinde, tüm komutlar crontab'ı oluşturan kullanıcı olarak çalışır.who
Kullanıcı crontab'ları, bireysel kullanıcıların kendi görevlerini zamanlamasına olanak tanır. Kullanıcı, sistem crontab'ında bulunmayan görevleri zamanlamak için kullanılabilecek bir kullanıcı crontab'ına da sahip olabilir.root
İşte crontab, /etc/crontab sisteminden örnek bir giriş:
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD$

SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
[TABLE=full][TR][TD][/TD][TD]Karakterle başlayan satırlar yorumlardır. İstenen bir eylemin ne ve neden gerçekleştirildiğini hatırlatmak için dosyaya bir yorum yerleştirilebilir. Yorumlar bir komutla aynı satırda olamaz, aksi takdirde komutun bir parçası olarak yorumlanırlar; yeni bir çizgide olmalılar. Boş satırlar yoksayılır.#[/TD#minute
[TR]
[TD][/TD][TD]Eşittir () karakteri, herhangi bir ortam ayarını tanımlamak için kullanılır. Bu örnekte, ve . Bu öğe atlanırsa, cron varsayılan Bourne kabuğunu kullanır. Atlanırsa, tam yol çalıştırılacak komuta veya komut dosyasına verilmelidir.=SHELLPATHSHELLPATH[/TD][/TR][TR][TD][/TD][TD]Bu satır, bir sistem crontab'ında kullanılan yedi alanı tanımlar: , , , , , , , ve . Alan, belirtilen komutun çalıştırılacağı dakika cinsinden zamandır, belirtilen komutun çalıştırılacağı saattir, ayın günüdür, aydır ve haftanın günüdür. Bu alanlar, yirmi dört saatlik saati temsil eden sayısal değerler veya o alanın tüm değerlerini temsil eden a , olmalıdır. Alan yalnızca sistem crontab içinde bulunur ve komutun hangi kullanıcı olarak çalıştırılacağını belirtir. Son alan, yürütülecek komuttur.minutehourmdaymonthwdaywhocommandminutehourmdaymonthwday*who[/TD][TD][/TD][/TR][TR][TD][/TD][TD]Bu girdi, bu cron işi için değerleri tanımlar. , ardından birkaç karakter daha gelir, her saatin her beş dakikasında, haftanın her günü ve gününde, her ayın çağrıldığını belirtir. Komutlar herhangi bir sayıda anahtar içerebilir. Ancak, birden çok satıra uzanan komutların ters eğik çizgi "\" devam karakteriyle kırılması gerekir.*/5*/usr/libexec/atrunroot[/TD][TD][/TD][/TR][/TABLE] <h4>13.3.1. Kullanıcı Crontab Oluşturma</h4>Bir kullanıcı crontab oluşturmak için düzenleyici modunda çağırın:crontab
% crontab -e

Bu, varsayılan metin düzenleyicisini kullanarak kullanıcının crontab dosyasını açacaktır. Bir kullanıcı bu komutu ilk kez çalıştırdığında, boş bir dosya açar. Bir kullanıcı bir crontab oluşturduktan sonra, bu komut bu dosyayı düzenlemek için açacaktır.
Ortam değişkenlerini ayarlamak ve crontab içindeki alanların anlamlarını hatırlamak için bu satırları crontab dosyasının en üstüne eklemek yararlıdır:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
# Order of crontab fields
# minute hour mday month wday command
Ardından, çalıştırılacak her komut veya komut dosyası için, komutun çalıştırılacağı zamanı belirten bir satır ekleyin. Bu örnek, belirtilen özel Bourne kabuk betiğini her gün öğleden sonra ikide çalıştırır. Komut dosyasının yolu , içinde belirtilmediğinden, komut dosyasının tam yolu verilir:pATH
0 14 * * * /usr/home/dru/bin/mycustomscript.sh
[TABLE=full][TR][TD][/TD][TD]Özel bir komut dosyası kullanmadan önce, yürütülebilir olduğundan emin olun ve cron tarafından ayarlanan sınırlı ortam değişkenleri kümesiyle test edin. Yukarıdaki cron girdisini çalıştırmak için kullanılacak ortamı çoğaltmak için şunu kullanın:
env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/dru LOGNAME=dru /usr/home/dru/bin/mycustomscript.sh
Cron tarafından ayarlanan ortam . Komut dosyalarının cron ortamında düzgün çalışıp çalışmadığını denetlemek, joker karakterler kullanarak dosyaları silen herhangi bir komut içeriyorsa özellikle önemlidir.[/TD][/TR][/TABLE] Cron sekmesini düzenlemeyi tamamladığınızda, dosyayı kaydedin. Otomatik olarak kurulacak ve cron crontab'ı okuyacak ve cron işlerini belirtilen zamanlarda çalıştıracaktır. Cron işlerini bir crontab içinde listelemek için şu komutu kullanın:
% crontab -l
0 14 * * * /usr/home/dru/bin/mycustomscript.sh

Bir kullanıcı crontabındaki tüm cron işlerini kaldırmak için:
% crontab -r
remove crontab for dru? y

13.4. FreeBSD'de Hizmetleri Yönetme​

FreeBSD, sistem başlatma sırasında ve hizmetleri yönetmek için başlangıç komut dosyaları sistemini kullanır. /etc/rc.d dosyasında listelenen komut dosyaları, , ve ) seçenekleriyle kontrol edilebilen temel hizmetler sağlar. Örneğin, aşağıdaki komutla yeniden başlatılabilir:startstoprestart
# service sshd restart

Bu yordam, çalışan bir sistemde hizmetleri başlatmak için kullanılabilir. Hizmetler, dosyasında belirtildiği gibi önyükleme zamanında otomatik olarak başlatılır. Örneğin, sistem başlangıcında i etkinleştirmek için /etc/rc.conf dosyasına aşağıdaki satırı ekleyin:
natd_enable="YES"
Bir satır zaten varsa, . komut dosyaları, aşağıda açıklandığı gibi bir sonraki önyükleme sırasında bağımlı hizmetleri otomatik olarak yükler.natd_enable="NO"NOYES
sistemi öncelikle sistem başlatma ve kapatma sırasında hizmetleri başlatmak ve durdurmak için tasarlandığından, , ve seçenekleri yalnızca uygun /etc/rc.conf değişkeni ayarlanmışsa eylemlerini gerçekleştirir. Örneğin, yalnızca /etc/rc.conf içinde ayarlanmışsa çalışır. /etc/rc.conf dosyasındaki ayarlardan bağımsız olarak to veya bir hizmete, bu komutların başına "one" eklenmelidir. Örneğin, geçerli /etc/rc.conf ayarından bağımsız olarak i yeniden başlatmak için aşağıdaki komutu yürütün:startstoprestartsshd restartsshd_enableYESstartstoprestart
# service sshd onerestart

/etc/rc.conf dosyasında bir hizmetin etkin olup olmadığını kontrol etmek için, uygun komut dosyasını . Bu örnek, /etc/rc.conf dosyasında in etkin olup olmadığını denetler:rcvar
# service sshd rcvar
# sshd
#
sshd_enable="YES"
# (default: "")
154707_6adf6a07d54e95544d49ef5703be2cad.png

[TABLE=full][TR][TD][/TD][TD]Satır, bir konsoldan değil, yukarıdaki komuttan çıktıdır.# sshdroot[/TD][/TR][/TABLE] Bir hizmetin çalışıp çalışmadığını belirlemek için, . Örneğin, in çalıştığını doğrulamak için:status
# service sshd status
sshd is running as pid 433.
154709_097a72d409651310ec5df7267a208ef1.png

Bazı durumlarda, bir hizmet de mümkündür. Bu, tek bir hizmete sinyal göndermeye çalışır ve hizmeti yapılandırma dosyalarını yeniden yüklemeye zorlar. Çoğu durumda bu, hizmete bir sinyal göndermek anlamına gelir. Bu özellik desteği her hizmet için dahil değildir.reloadSIGHUP
sistemi ağ hizmetleri için kullanılır ve aynı zamanda sistemin başlatılmasının çoğuna katkıda bulunur. Örneğin, /etc/rc.d/bgfsck komut dosyası yürütüldüğünde, aşağıdaki iletiyi yazdırır:
Starting background file system checks in 60 seconds.

Bu komut dosyası, yalnızca sistem başlatma sırasında gerçekleşen arka plan dosya sistemi denetimleri için kullanılır.
Birçok sistem hizmeti düzgün çalışması için diğer hizmetlere bağımlıdır. Örneğin, (8) ve diğer RPC tabanlı hizmetler, hizmeti başlatılıncaya kadar başlatılamayabilir. Bu sorunu gidermek için, bağımlılıklar ve diğer meta veriler hakkındaki bilgiler her başlangıç komut dosyasının en üstündeki açıklamalara eklenir. programı, bağımlılıkları karşılamak için sistem hizmetlerinin çağrılması gereken sırayı belirlemek üzere sistem başlatma sırasında bu yorumları ayrıştırmak için kullanılır.
tarafından başlangıç komut dosyasının "etkinleştirilmesi" için gerekli olduğu için aşağıdaki anahtar sözcük tüm başlangıç komut dosyalarına eklenmelidir:
  • <li data-xf-list-type="ul">PROVIDE: Bu dosyanın sağladığı hizmetleri belirtir.
Aşağıdaki anahtar sözcükler her başlangıç komut dosyasının en üstüne eklenebilir. Bunlar kesinlikle gerekli değildir, ancak ) için ipuçları olarak kullanışlıdır:
  • <li data-xf-list-type="ul">REQUIRE: Bu hizmet için gerekli olan hizmetleri listeler. Bu anahtar sözcüğü içeren komut dosyası, belirtilen hizmetlerden sonra çalışır. <li data-xf-list-type="ul">BEFORE: Bu hizmete bağlı hizmetleri listeler. Bu anahtar sözcüğü içeren komut dosyası, belirtilen hizmetlerden önce çalışır.
Her başlangıç komut dosyası için bu anahtar sözcükleri dikkatli bir şekilde ayarlayan yönetici, bazı UNIX® işletim sistemleri tarafından kullanılan "çalışma düzeylerine" gerek kalmadan, komut dosyalarının başlangıç sırası üzerinde ayrıntılı bir denetim düzeyine sahip olur.
Ek bilgiler rc(8) ve Özel komut dosyalarının nasıl oluşturulacağına ilişkin yönergeler için bakın.
<h4>13.4.1. Sisteme Özel Yapılandırmayı Yönetme</h4>Sistem yapılandırma bilgilerinin asıl konumu /etc/rc.conf şeklindedir. Bu dosya çok çeşitli yapılandırma bilgileri içerir ve sistemi yapılandırmak için sistem başlangıcında okunur. rc* dosyaları için yapılandırma bilgileri sağlar.
/etc/rc.conf dosyasındaki girişler /etc/defaults/rc.conf dosyasındaki varsayılan ayarları geçersiz kılar. Varsayılan ayarları içeren dosya düzenlenmemelidir. Bunun yerine, sisteme özgü tüm değişiklikler /etc/rc.conf dosyasında yapılmalıdır.
Yönetim yükünü azaltmak amacıyla site genelindeki yapılandırmayı sisteme özgü yapılandırmadan ayırmak için kümelenmiş uygulamalarda bir dizi strateji uygulanabilir. Önerilen yaklaşım, sisteme özgü yapılandırmayı /etc/rc.conf.local içine yerleştirmektir. Örneğin, /etc/rc.conf dosyasındaki şu girdiler tüm sistemler için geçerlidir:
sshd_enable="YES"
keyrate="fast"
defaultrouter="10.1.1.254"
/etc/rc.conf.local dosyasındaki bu girişler yalnızca bu sistem için geçerlidir:
hostname="node1.example.org"
ifconfig_fxp0="inet 10.1.1.1/8"
/etc/rc.conf dosyasını rsync veya kukla gibi bir uygulama kullanarak her sisteme dağıtın, /etc/rc.conf.local ise benzersiz kalır.
Upgrading the system will not overwrite /etc/rc.conf, so system configuration information will not be lost.
[TABLE=full][TR][TD][/TD][TD]Both /etc/rc.conf and /etc/rc.conf.local are parsed by . This allows system operators to create complex configuration scenarios. Refer to for further information on this topic.[/TD][/TR][/TABLE]

13.5. Ağ Arabirim Kartlarının Kurulması​

Ağ arabirim kartı (NIC) eklemek ve yapılandırmak, herhangi bir FreeBSD yöneticisi için ortak bir görevdir.
<h4>13.5.1. Doğru Sürücüyü Bulma</h4>İlk olarak, NIC'nin modelini ve kullandığı çipi belirleyin. FreeBSD çok çeşitli NIC'leri destekler. NIC'nin desteklenip desteklenmediğini görmek için FreeBSD sürümünün Donanım Uyumluluk Listesi'ni kontrol edin.
NIC destekleniyorsa, NIC için FreeBSD sürücüsünün adını belirleyin. Desteklenen yonga kümeleri hakkında bazı bilgiler içeren NIC sürücülerinin listesi için /usr/src/sys/conf/NOTES ve /usr/src/sys/arch/conf/NOTES dosyalarına bakın. Şüphe duyduğunuzda, desteklenen donanım ve sürücünün bilinen sınırlamaları hakkında daha fazla bilgi sağlayacağından sürücünün el kitabı sayfasını okuyun.
Yaygın NIC'lerin sürücüleri GENEL çekirdekte zaten mevcuttur, yani NIC'nin önyükleme sırasında incelenmesi gerekir. Sistemin önyükleme mesajları, metin içinde gezinmek için boşluk çubuğu yazılarak ve kullanılarak görüntülenebilir. Bu örnekte, sistemde sürücüsünü kullanan iki Ethernet NIC bulunmaktadır:more /var/run/dmesg.boot
dc0: &lt;82c169 PNIC 10/100BaseTX&gt; port 0xa000-0xa0ff mem 0xd3800000-0xd38
000ff irq 15 at device 11.0 on pci0
miibus0: &lt;MII bus&gt; on dc0
bmtphy0: &lt;BCM5201 10/100baseTX PHY&gt; PHY 1 on miibus0
bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc0: Ethernet address: 00:a0:cc:da:da:da
dc0: [ITHREAD]
dc1: &lt;82c169 PNIC 10/100BaseTX&gt; port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
miibus1: &lt;MII bus&gt; on dc1
bmtphy1: &lt;BCM5201 10/100baseTX PHY&gt; PHY 1 on miibus1
bmtphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: Ethernet address: 00:a0:cc:da:da:db
dc1: [ITHREAD]

NIC sürücüsü GENERIC'te yoksa, ancak bir sürücü varsa, NIC'nin yapılandırılabilmesi ve kullanılabilmesi için sürücünün yüklenmesi gerekir. Bu, iki yoldan biriyle gerçekleştirilebilir:
  • <li data-xf-list-type="ul">En kolay yol, ) kullanarak NIC için bir çekirdek modülü yüklemektir. Ayrıca sürücüyü önyükleme sırasında otomatik olarak yüklemek için /boot/loader.conf dosyasına uygun satırı ekleyin. Tüm NIC sürücüleri modül olarak kullanılamaz. <li data-xf-list-type="ul">Alternatif olarak, NIC desteğini statik olarak özel bir çekirdeğe derleyin. Özel çekirdek yapılandırma dosyasına hangi satırın ekleneceğini belirlemek için /usr/src/sys/conf/NOTES, /usr/src/sys/arch/conf/NOTES ve sürücünün el kitabı sayfasına bakın. Çekirdeği yeniden derleme hakkında daha fazla bilgi için, konusuna bakın. NIC önyükleme sırasında algılandıysa, çekirdeğin yeniden derlenmesi gerekmez.
<h4>13.5.1.1. Windows® NDIS Sürücülerini Kullanma</h4>Ne yazık ki, sürücüleri için açık kaynak topluluğuna şematik sağlamayan birçok satıcı var, çünkü bu tür bilgileri ticari sırlar olarak görüyorlar. Sonuç olarak, FreeBSD ve diğer işletim sistemlerinin geliştiricilerine iki seçenek bırakılmıştır: sürücüleri uzun ve zahmetli bir tersine mühendislik süreciyle veya Microsoft® Windows® platformları için mevcut sürücü ikili dosyalarını kullanarak geliştirmek.
FreeBSD, Ağ Sürücüsü Arabirim Belirtimi (NDIS) için "yerel" destek sağlar. Bir Windows® XP sürücüsünü FreeBSD'de kullanılabilecek bir biçime dönüştürmek için kullanılabilecek içerir. sürücüsü Windows® XP ikili dosyası kullandığından, yalnızca i386™ ve amd64 sistemlerinde çalışır. PCI, CardBus, PCMCIA ve USB aygıtları desteklenir.
için üç şeye ihtiyaç vardır:
  1. <li data-xf-list-type="ol">FreeBSD çekirdek kaynakları. <li data-xf-list-type="ol">.SYS uzantılı bir Windows® XP sürücü ikilisi. <li data-xf-list-type="ol">Windows® XP sürücüsü yapılandırma dosyası . INF uzantısı.
.SYS indirin ve . Belirli NIC için INF dosyaları. Genel olarak, bunlar sürücü CD'sinde veya satıcının web sitesinde bulunabilir. Aşağıdaki örneklerde W32DRIVER.SYS ve W32DRIVER kullanılmıştır. INF.
Sürücü bit genişliği FreeBSD sürümüyle eşleşmelidir. FreeBSD/i386 için Windows® 32 bit sürücü kullanın. FreeBSD/amd64 için Windows® 64 bit sürücü gereklidir.
Bir sonraki adım, sürücü ikili dosyasını yüklenebilir bir çekirdek modülüne derlemektir. As , :root
# ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS

Bu komut etkileşimlidir ve gerektirdiği ek bilgileri ister. Geçerli dizinde yeni bir çekirdek modülü oluşturulacaktır. Yeni modülü yüklemek için kullanın:
# kldload ./W32DRIVER_SYS.ko

Oluşturulan çekirdek modülüne ek olarak, ndis.ko ve if_ndis.ko modülleri de yüklenmelidir. Bu, e bağlı herhangi bir modül yüklendiğinde otomatik olarak gerçekleşmelidir. Değilse, aşağıdaki komutları kullanarak bunları el ile yükleyin:
# kldload ndis
# kldload if_ndis

İlk komut miniport sürücü sarmalayıcısını yükler ve ikincisi oluşturulan NIC sürücüsünü yükler.
Herhangi bir yükleme hatası olup olmadığını görmek için öğesini kontrol edin. Her şey yolunda giderse, çıktı aşağıdakine benzer olmalıdır:
ndis0: &lt;Wireless-G PCI Adapter&gt; mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps

Buradan, ndis0 diğer NIC gibi yapılandırılabilir.
Sistemi ) modüllerini önyükleme zamanında yükleyecek şekilde yapılandırmak için, oluşturulan modülü (W32DRIVER_SYS.ko) /boot/modules konumuna kopyalayın. Ardından, /boot/loader.conf dosyasına aşağıdaki satırı ekleyin:
W32DRIVER_SYS_load="YES"
<h4></h4>
FreeBSD Tuning 13: Yapılandırma ve Ayarlama Rehberi

Metin2Lobby olarak sunucu yönetimi ve performans optimizasyonu konusunda deneyimlerimizi paylaşmaya devam ediyoruz. Bu yazıda özellikle FreeBSD 13 tabanlı sistemlerde Metin2 sunucuları için yapılandırma ve ayarlamaların ne kadar önemli olduğunu ele alacağız. FreeBSD, güçlü çekirdek yapısı, stabilitesi ve güvenlik odaklı mimarisiyle oyun sunucuları için ideal bir platformdur. Ancak doğru yapılandırma olmadan bu potansiyeli tam olarak kullanamazsınız.

FreeBSD 13 Sistem Gereksinimleri ve Kurulum Öncesi Hazırlık

Öncelikle sisteminizde yeterli RAM, SSD disk ve işlemci gücü olduğundan emin olun. Metin2 gibi MMORPG oyunları, yüksek sayıda kullanıcıya hizmet verdiği için bellek ve CPU tüketimi oldukça fazladır. FreeBSD 13 ile gelen yeni çekirdek güncellemeleri sayesinde I/O işlemleri optimize edilmiş, bu da veritabanı sunucularında ciddi performans artışları sağlamıştır.

Kernel Ayarlamaları ve Sysctl.conf Düzenlemesi

Sistem performansını artırmak için /etc/sysctl.conf dosyasında bazı ayarlamalar yapmalısınız:

Kod:
[B]kern.maxfiles=250000[BR][/BR]kern.maxfilesperproc=25000[BR][/BR]net.inet.tcp.sendspace=65536[BR][/BR]net.inet.tcp.recvspace=65536[BR][/BR]net.core.rmem_max=16777216[BR][/BR]net.core.wmem_max=16777216[/B]


Bu ayarlar özellikle TCP bağlantılarını ve bellek yönetimini optimize eder. FreeBSD 13 üzerinde çalışan auth server, db server ve game server bileşenlerinde ciddi bir fark göreceksiniz.

Jail Kullanımı ve Güvenlik Katmanları

FreeBSD'nin en güçlü yanlarından birisi olan jail sistemi sayesinde farklı servisleri izole ortamlarda çalıştırabilirsiniz. Örneğin, MySQL veya MariaDB veritabanınızı bir jail altında çalıştırarak ana sistemden ayırabilirsiniz. Bu, hem güvenlik hem de performans açısından avantaj sağlar.

Paket Yönetimi ve Port Kullanımı

FreeBSD'de pkg ve ports sistemleri mevcuttur. Metin2 sunucusu için gerekli olan boost, gcc, clang, python3 gibi kütüphaneleri ports ile derlemek, özel ihtiyaçlarınıza göre optimize edilmiş bir yapı sunar. Ports sistemi sayesinde src üzerinden derleme yaparak daha hızlı ve stabil çalışan bir sunucu elde edebilirsiniz.

Ağ Ayarlamaları ve Firewall Kullanımı

FreeBSD'nin sunduğu pf (Packet Filter) sistemi, güçlü bir güvenlik duvarı çözümüdür. Ağ trafiğini yönetmek, DDoS saldırılarına karşı önlem almak ve sunucu erişimlerini filtrelemek için pf kullanılır. Örnek bir pf.conf dosyası şu şekildedir:

Kod:
[B]block in all[BR][/BR]pass out all[BR][/BR]pass in on $ext_if proto tcp from any to any port {25565, 13000, 13001, 13002}[/B]


Bu yapılandırma, Metin2 sunucularınızın belirli portlardan gelen bağlantılara izin verir.

Derleme ve Geliştirme Ortamı

Metin2 geliştiricileri için FreeBSD üzerinde GCC ve Clang derleyici seçenekleri mevcuttur. Derleme sırasında optimize flag'leri kullanmak, sunucu performansını artırabilir. Özellikle martysama gibi geliştiricilerin katkılarıyla FreeBSD üzerinde derlenen sunucu binary'leri daha kararlı çalışmaktadır.

Sonuç

FreeBSD 13, Metin2 sunucuları için güçlü bir altyapı sağlar. Ancak bu altyapının doğru yapılandırılması ve sürekli izlenmesi gerekir. Kernel ayarları, jail kullanımı, ağ yapılandırması ve paket yönetimi gibi konularda dikkatli hareket edilmesi, sistemin uzun ömürlü ve kararlı çalışmasını sağlar.


FreeBSD Tuning 13: Configuration and Optimization Guide

Metin2Lobby continues to share our experiences regarding server management and performance optimization. In this article, we will examine how important configuration and tuning are for Metin2 servers running on FreeBSD 13. FreeBSD is an ideal platform for game servers due to its robust kernel architecture, stability, and security-focused design. However, without proper configuration, you cannot fully utilize its potential.

FreeBSD 13 System Requirements and Pre-Installation Preparation

Firstly, ensure that your system has sufficient RAM, SSD storage, and CPU power. MMORPG games like Metin2 consume significant memory and CPU resources due to serving large numbers of players simultaneously. Thanks to the kernel updates included with FreeBSD 13, I/O operations have been optimized, leading to substantial performance improvements for database servers.

Kernel Settings and Editing sysctl.conf

To enhance system performance, make the following adjustments in the /etc/sysctl.conf file:

Kod:
[B]kern.maxfiles=250000[BR][/BR]kern.maxfilesperproc=25000[BR][/BR]net.inet.tcp.sendspace=65536[BR][/BR]net.inet.tcp.recvspace=65536[BR][/BR]net.core.rmem_max=16777216[BR][/BR]net.core.wmem_max=16777216[/B]


These settings optimize TCP connections and memory management. You will notice a significant difference in auth server, db server, and game server components running on FreeBSD 13.

Using Jails and Security Layers

One of FreeBSD's strongest features is its jail system, which allows you to run different services in isolated environments. For instance, you can run your MySQL or MariaDB database within a jail to separate it from the main system. This offers both security and performance benefits.

Package Management and Port Usage

FreeBSD includes both pkg and ports systems. Libraries such as boost, gcc, clang, and python3 required for Metin2 servers can be compiled via ports, allowing for builds tailored to your specific needs. Compiling from src through the ports system enables faster and more stable server binaries.

Network Configuration and Firewall Usage

FreeBSD's pf (Packet Filter) is a powerful firewall solution. It is used to manage network traffic, defend against DDoS attacks, and filter server access. An example pf.conf file looks like this:

Kod:
[B]block in all[BR][/BR]pass out all[BR][/BR]pass in on $ext_if proto tcp from any to any port {25565, 13000, 13001, 13002}[/B]


This configuration allows incoming connections on specific ports used by Metin2 servers.

Compilation and Development Environment

For Metin2 developers, FreeBSD provides both GCC and Clang compiler options. Using optimization flags during compilation can improve server performance. Server binaries compiled under FreeBSD, especially with contributions from developers like martysama, tend to run more stably.

Conclusion

FreeBSD 13 provides a solid foundation for Metin2 servers. However, proper configuration and continuous monitoring are essential. Careful attention to kernel settings, jail usage, network configuration, and package management ensures long-term, stable operation.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt