
HomeLab Deneyimi
- Murat Akpınar
- Bilgi teknolojisi
- 23 Temmuz 2023
İçindekiler
Bu fikir ‘Hardware Haven’ youtube kanalını izlerken aklıma geldi. Evimizde bir bilgisayarı alıp sunucu şekline getirmek. Tabi daha bir çok içeriği de gene internetten ‘homelab tour’ yazarak daha fazla içeriğe ulaşabilirsiniz çok harika fikirler var. Fiziksel olarak kendi evimde server, nas, firewall ve Backbone(omurga) switch gibi teçhizatlar yok ve almak sanırım Türkiye şartlarında çok pahalıya gelir tabi elektrik faturası da cabası.
Ama açık kaynak(Open Source) yazılımlar ile bunların oluşturacağımız sanal makineler üzerinde çok fazla para harcamadan çalışmalar yapabileceğim düşünüyorum. Hem kendimi geliştirmek ve bu teknolojiye aşina olmak istedim. Bunun için ekstra bir bilgisayar eski dizüstü bilgisayarımı sunucu haline getirmeye karar verdim. Bunun için dizüstü bilgisayarıma Proxmox VE kuracağım.
Tabi bu zorunlu bir şart değil 2. bir bilgisayarınız yoksa kendi kullandığınız bilgisayarınıza kurabileceğiniz sanallaştırma(virtualization) yazılımları mevcut. Açık kaynak veya ücretsiz kullanabileceğiniz yazılımlardan size uygun olanı tercih edebilirsiniz. Alternatifler için önce ki yazılarımda size bahsettiğim AlternativeTo sitesinden fikir edinebilirsiniz. Benim önerim; Eğer Windows kullanıyorsanız Oracle VM VirtualBox, Linux kullanıyorsanız KVM(Kernel Virtual Machine) tercih edebilirsiniz.
Burada yapacağımız temel şey şu olacak Firewall, DHCP server, TrueNAS ve Pi-Hole gibi servisleri veya cihazları kuracağımız alanı oluşturmak. Normalde Firewall, NAS ve Pi-Hole ayrı bir cihaz alarak barındırmamız gerekir. fakat buna gerek kalmadan sanal bir ortam oluşturacağız. Bu programların hepsi ayrı bir sanal sunucu(Virtual Machine - VM) olacak. Kendi bilgisayarımızın üstüne veya ayrı bir 2. Bilgisayarınıza sanallaştırma teknolojisiyle, karar verdiğimiz servisler için ayrı ayrı fiziksel makineye ihtiyaç duymadan bir sistemin bütün donanımı alıp parçalar bölerek farklı farklı sanal makineler(Virtual Machine - VM) kuracağız.
Bu konu hakkında daha fazla bilgi için ‘Sanallaştırma Nedir?’ yazıma bakabilirsiniz.

İlk önce kullanacağımız yazılımlar ve bu amaca uygun sanal makinelere (Virtual Machine - VM) karar vermek olacak. Bu amaca göre yaratacağımız makinelere CPU, RAM ve Disk Alanı vereceğiz.
Sonra karar verdiğimiz makineler için ip adresleri ve onlara vereceğimiz isimleri belirlememiz lazım. İlk önce kafanızda tasarlayın ve not almayı unutmayın.
True NAS kuracaksanız ve tek bir diskiniz varsa onu Partitions bölmeniz gerekir. Proxmox VE ve diğer sanal makineler için kullanacağımız disk bölümü ayrı. Pool oluşturmak için ayrı bir disk bölümü gerekecek.
| Sunucu Amacı | Sunucu İsimleri | Kullanılacak Yazılımlar | IP Adresleri |
|---|---|---|---|
| Virtualization | kilvin.local | Proxmox VE | 192.168.1.140 |
| Monitoring | elxa-dal.local | Uptime-Kuma | 192.168.1.141 |
| VPN | elodin.local | Pi-VPN | 192.168.1.142 |
| Firewall | arwyl.local | pfsense | 192.168.1.143 |
| NAS | lorren.local | TrueNAS | 192.168.1.144 |
| AdBlok | herma.local | Pi-hole | 192.168.1.145 |
Bu isimleri ‘Kral Katili Güncesi’ kitabında yer alan öğretmenlerin isimlerinden seçtim.
Buna benzer yöntem ile akılda kalıcı isimler seçebilirsiniz.
Bu listede ki her şeyi kurmak zorunda değilsiniz istediğiniz şeyleri kurabilir. Çalışmak istediğiniz yazılımlar için uygun veya benim seçtiğim yazılımların alternatiflerine bakabilirsiniz. Ben elimden geldiğince Açık Kaynak(Open Source) yazılımlar kullanmaya çalıştım.
kilvin.local: Proxmox VE’yi Dizüstü Bilgisayara Kurmak
Dizüstü bilgisayarın sunucu olarak iki avantajı var ve ikisi de küçümsenmemeli: ekranı ve klavyesi üstünde geldiği için ağ bozulduğunda hâlâ makineye ulaşabiliyorsunuz, ve bataryası ücretsiz bir kesintisiz güç kaynağı. Elektrik kesildiğinde masaüstü bir sunucu anında ölür; bu makine çalışmaya devam eder.
cat /sys/class/power_supply/BAT0/capacity
Kurulumdan Önce: BIOS ve Diskin Bölünmesi
BIOS’ta sanallaştırma açık olmalı (Intel’de VT-x, AMD’de AMD-V). Kurulumdan sonra doğrulaması tek satır:
grep -Eo 'vmx|svm' /proc/cpuinfo | sort -u
Çıktı boşsa Proxmox kurulur ama tek bir sanal makine bile başlamaz.
Asıl karar disk tarafında ve kurulum sırasında verilmesi gerekiyor. Proxmox kurulumu varsayılan olarak seçtiğiniz diskin tamamını kullanır. Yazının başındaki uyarı tam olarak buraya bakıyor: TrueNAS’a verilecek ayrı bir disk bölümü isterseniz, kurulumda hedef disk ekranındaki Options düğmesine girip hdsize değerini diskin toplam boyutundan küçük seçmelisiniz. Geriye kalan alan bölümlendirilmeden durur ve sonradan ZFS havuzu için kullanılabilir.
Dosya sistemi olarak tek diskli bir makinede ext4 seçin. ZFS’in tek diskte yedeklilik katkısı yok, buna karşılık ARC önbelleği belleğin önemli bir kısmını ister — sanal makinelere ayıracağınız belleği.
Kurulum ekranlarında ağ ayarı:
| Alan | Değer |
|---|---|
| Hostname (FQDN) | kilvin.local |
| IP Address (CIDR) | 192.168.1.140/24 |
| Gateway | 192.168.1.1 |
| DNS Server | 192.168.1.1 |
Kurulum bitince arayüz https://192.168.1.140:8006 adresinde. Sertifika kendinden imzalı olduğu için tarayıcı uyarı verir; bu beklenen davranış.

Kapak Kapanınca Uyumasın
Varsayılan ayarlarda kapağı kapattığınız anda makine uykuya girer ve bütün lab düşer. Üç satır:
# /etc/systemd/logind.conf
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
systemctl restart systemd-logind
Üçünü birden yazmanın sebebi var: HandleLidSwitch yalnızca bataryayla çalışırken geçerlidir. Prize takılıyken davranışı belirleyen HandleLidSwitchExternalPower ayrı bir ayardır ve çoğu rehber onu atlar.
Abonelik Deposunu Değiştirmek
Proxmox varsayılan olarak yalnızca abonelik sahiplerinin erişebildiği depoyu tanımlar; apt update yetkilendirme hatası verir. Ücretsiz depoya geçiyoruz:
sed -i 's/^deb/# deb/' /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
> /etc/apt/sources.list.d/pve-no-subscription.list
apt update && apt full-upgrade -y
bookworm Proxmox VE 8 içindir (Debian 12 tabanlı). 7.x kuruyorsanız bullseye yazın; sürümü pveversion ile görebilirsiniz. Proxmox VE 8.2’den itibaren depo tanımları deb822 biçimine (/etc/apt/sources.list.d/*.sources) taşındı — o sürümlerde dosya adı ve içerik farklıdır.
arwyl.local: pfSense’i Lab Güvenlik Duvarı Olarak Kurmak
Burada baştan dürüst olmak gerekiyor: tek ağ kartı olan ve evdeki modemin arkasında duran bir makinede pfSense, evin güvenlik duvarı olamaz. Trafiğin tamamı zaten modemden geçiyor. Bu kurulumda pfSense’in yaptığı şey başka ve yine değerli: içeride, ev ağından ayrılmış ikinci bir ağ kuruyor. Kural yazmayı, NAT’ı, VLAN’ı ve VPN’i ev ağını hiç bozmadan burada deniyorsunuz.
İki Bridge: Neyin WAN, Neyin LAN Olduğu
vmbr0 kurulumda oluştu ve fiziksel ağ kartına bağlı — pfSense’in WAN’ı bu olacak. LAN için fiziksel porta bağlı olmayan ikinci bir köprü ekliyoruz:
# /etc/network/interfaces sonuna
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
ifreload -a
ip link show vmbr1
bridge-ports none satırı bu köprünün hiçbir fiziksel karta bağlanmadığını söyler: üzerindeki trafik makineden dışarı çıkmaz, yalnızca sanal makineler arasında akar.
VM’i Oluşturmak
İndirdiğiniz ISO’yu arayüzde local deposunun ISO Images bölümüne yükleyin. pfSense CE kurulum imajı sıkıştırılmış (.iso.gz) gelir; yüklemeden önce açmanız gerekir.
qm create 143 --name arwyl \
--memory 2048 --cores 2 --ostype other \
--net0 virtio,bridge=vmbr0 \
--net1 virtio,bridge=vmbr1 \
--scsihw virtio-scsi-single --scsi0 local-lvm:20 \
--cdrom local:iso/pfsense.iso \
--boot 'order=ide2;scsi0'
qm start 143
--boot değerindeki tırnak şart: kabuk ; işaretini komut ayracı sanar ve tırnaksız yazarsanız komut yarıda kesilir.
Arayüz sırası önemli — pfSense kurulumda hangi kartın WAN, hangisinin LAN olacağını sorar. net0 (vmbr0) WAN, net1 (vmbr1) LAN olacak.
LAN Tarafına Bir Makine Gerekiyor
pfSense’in web arayüzüne birazdan LAN tarafından bağlanmamız gerekecek, ama vmbr1 üzerinde henüz hiçbir makine yok. Küçük bir konteyner yeter:
pct create 110 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname lab-istemci \
--cores 2 --memory 512 --swap 512 \
--rootfs local-lvm:8 \
--net0 name=eth0,bridge=vmbr1,ip=10.10.10.110/24,gw=10.10.10.1 \
--nameserver 1.1.1.1 \
--unprivileged 1 --onboot 1
pct start 110
Geçit adresini şimdiden 10.10.10.1 yazıyoruz; pfSense o adresi bir sonraki adımda alacak, o ana kadar bu konteynerin dışarıyla bağlantısı olmayacak. Bu makine lab ağının ilk sakini: kural yazarken etkisini üzerinde deneyeceğiniz, traceroute ile trafiğin gerçekten pfSense’ten geçtiğini doğrulayacağınız yer.
Kurulumdan Sonra Zorunlu Üç Düzeltme
1. LAN varsayılanı ev ağıyla çakışır. pfSense LAN arayüzünü fabrika ayarında 192.168.1.1/24 yapar; ev ağımız da 192.168.1.0/24. Konsol menüsünde 2) Set interface(s) IP address ile LAN’ı 10.10.10.1/24 yapın. Bu adımı atlarsanız iki ağ birbirinin üstüne biner ve hiçbir şey tutarlı çalışmaz.
2. WAN özel ağ adreslerini reddediyor. pfSense’in WAN arayüzünde Block private networks varsayılan olarak açıktır ve RFC 1918 adreslerinden gelen trafiği düşürür. Bizim WAN’ımız ev ağı, yani tam olarak o adres aralığı — arayüze WAN tarafından hiç ulaşamazsınız. Doğru yol az önce oluşturduğumuz lab-istemci konteynerinden https://10.10.10.1 adresine girip Interfaces → WAN altındaki kutuyu kaldırmaktır.
3. virtio kartlarda donanım sağlama toplamı kapatılmalı. System → Advanced → Networking altında Disable hardware checksum offload işaretlenmeli. FreeBSD’nin virtio sürücüsünde bu özellik açıkken paketler bozulur; belirti “ağ çalışıyor ama bazı bağlantılar kopuyor” olur.
WAN tarafına tablodaki adresi sabit veriyoruz: 192.168.1.143/24, gateway 192.168.1.1.
herma.local: Pi-hole ile Ağ Genelinde Reklam Engelleme
Pi-hole hafif bir servis; tam bir sanal makineye gerek yok, LXC konteyner yeter.
pct create 145 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname herma \
--cores 2 --memory 512 --swap 512 \
--rootfs local-lvm:8 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.145/24,gw=192.168.1.1 \
--nameserver 1.1.1.1 \
--unprivileged 1 --onboot 1
pct start 145
pct enter 145
apt update && apt install -y curl
curl -sSL https://install.pi-hole.net | bash
Kurulum sihirbazı yukarı akış DNS’ini, engel listelerini ve arayüzü sorar. Yukarı akış DNS’i olarak modeminizin adresini seçmeyin. Modem, DHCP ile istemcilere DNS olarak Pi-hole’u dağıtıyorsa sorgu ikisi arasında dönüp durur; belirti “internet bazen çok yavaş” olur ve sebebini bulmak günler alır. Doğrudan bir dış çözümleyici seçin: 1.1.1.1, 9.9.9.9.
pihole -a -p # web arayüzü parolasını belirler
Arayüz http://192.168.1.145/admin adresinde.

Ağın Pi-hole’u kullanması için modemin DHCP ayarlarında DNS sunucusunu 192.168.1.145 yapın. Modeminiz bu alanı düzenlemeye izin vermiyorsa — Türkiye’de dağıtılan modemlerin bir kısmı vermiyor — iki seçenek kalır: DNS’i cihaz cihaz elle yazmak, ya da modemin DHCP’sini kapatıp DHCP görevini de Pi-hole’a vermek.
Doğrulama iki sorgu:
dig @192.168.1.145 doubleclick.net +short
dig @1.1.1.1 doubleclick.net +short
0.0.0.0
142.250.187.238
İlk komutun 0.0.0.0 dönmesi engellemenin çalıştığını gösterir; ikinci komut aynı adı gerçek adresiyle döndürür. İki komutun da aynı cevabı vermesi, Pi-hole’un kurulu ama devrede olmadığı anlamına gelir — istemcileriniz hâlâ modemin DNS’ini kullanıyordur.
elodin.local: PiVPN ile Eve WireGuard Tüneli
pct create 142 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname elodin \
--cores 2 --memory 512 --swap 512 \
--rootfs local-lvm:8 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.142/24,gw=192.168.1.1 \
--nameserver 192.168.1.145 \
--unprivileged 1 --onboot 1
WireGuard ayrıcalıksız bir konteynerde çalışır, ama iki satır yapılandırma ister. Konteyner kapalıyken host üzerinde:
# /etc/pve/lxc/142.conf sonuna
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
modprobe wireguard
echo wireguard > /etc/modules-load.d/wireguard.conf
pct start 142 && pct enter 142
curl -L https://install.pivpn.io | bash
İkinci satır atlanırsa tünel ilk yeniden başlatmaya kadar çalışır: ayrıcalıksız konteyner çekirdek modülünü kendisi yükleyemez, modülün host’ta hazır olması gerekir.
Kurulumda WireGuard’ı seçin (varsayılan port 51820/UDP) ve istemcilere dağıtılacak DNS olarak Pi-hole’un adresini (192.168.1.145) verin — böylece reklam engelleme dışarıdayken de çalışır.
Sihirbazın sorduğu en kritik soru, istemcilerin bağlanacağı genel adres. Bu değer istemci yapılandırmalarının içine gömülür; yanlış girerseniz üretilen bütün profilleri yeniden oluşturmanız gerekir.
Bağlanmıyorsa Sorun Büyük İhtimalle Burada
Kurulum bittiğinde tünel hâlâ çalışmaz, çünkü iki şey eksiktir.
Birincisi port yönlendirme: modeminizde 51820/UDP portunu 192.168.1.142 adresine yönlendirmeniz gerekir. Bu adım olmadan dışarıdan gelen hiçbir paket konteynere ulaşmaz.
İkincisi, port yönlendirmenin mümkün olup olmadığı. Türkiye’deki abonelerin önemli bir kısmı CGNAT arkasında; bu durumda modeminize gerçek bir genel IP verilmez ve port yönlendirme yapılandırılsa bile işlemez. Tek satırla sınayabilirsiniz:
curl -s ifconfig.me
Bu çıktı modemin WAN arayüzünde gördüğünüz adresle aynı değilse CGNAT arkasındasınız. Kesin işaret, modemin WAN adresinin 100.64.0.0/10 aralığında olmasıdır — o blok (RFC 6598) tam olarak bu amaç için ayrılmıştır. O noktada yapılacak şey yapılandırmayı kurcalamak değil: operatörden statik/genel IP talep etmek, ya da bir aracı sunucu üzerinden çalışan bir çözüme geçmek.
İstemci oluşturmak ve karekod almak:
pivpn add -n telefon
pivpn -qr telefon
Doğrulama, telefonun mobil veriyle (ev ağına bağlıyken değil) bağlanmasından sonra:
wg show
interface: wg0
public key: <sunucu-anahtarı>
listening port: 51820
peer: <istemci-anahtarı>
endpoint: 203.0.113.47:41234
allowed ips: 10.6.0.2/32
latest handshake: 34 seconds ago
transfer: 1.21 MiB received, 8.94 MiB sent
latest handshake satırı yoksa tünel hiç kurulmamıştır. Yapılandırma dosyası doğru görünse de, o satır gelene kadar bağlantı yok demektir — ve neredeyse her zaman sebep yukarıdaki iki maddeden biridir.
lorren.local: TrueNAS SCALE ve Diski Sanal Makineye Vermek
Bu, kurulumun en çok ödün verilen parçası ve sebebini yazmadan geçmek doğru olmaz. ZFS diskin kendisine erişmek üzere tasarlandı. Sanal bir disk verdiğinizde ZFS altındaki gerçek donanımı göremez: SMART okuyamaz, bir sektör hatasını diske bağlayamaz, hatayı yalnızca bozulmuş veri olarak görür.
Doğrusu, disk denetleyicisinin tamamını IOMMU (VT-d) ile sanal makineye geçirmektir. Dizüstü bilgisayarların çoğunda ne ayrı bir disk denetleyicisi ne de güvenilir bir VT-d desteği var, dolayısıyla burada ara yolu kullanıyoruz: tek bir fiziksel diski doğrudan VM’e vermek.
ls -l /dev/disk/by-id/
lrwxrwxrwx 1 root root 9 ... ata-Samsung_SSD_870_EVO_1TB_S6PTNJ0T412345 -> ../../sdb
qm create 144 --name lorren \
--memory 8192 --cores 2 --ostype l26 \
--net0 virtio,bridge=vmbr0 \
--scsihw virtio-scsi-single --scsi0 local-lvm:32 \
--cdrom local:iso/truenas-scale.iso \
--boot 'order=ide2;scsi0'
qm set 144 --scsi1 /dev/disk/by-id/ata-Samsung_SSD_870_EVO_1TB_S6PTNJ0T412345,serial=S6PTNJ0T412345
qm start 144
İki ayrıntı:
/dev/sdbyazmayın,by-idyolunu kullanın. Disk harf sırası yeniden başlatmada değişir;/dev/sdbbir gün başka bir diski gösterir ve TrueNAS yanlış diski havuza alır.serial=parametresini ekleyin. Onsuz konuk sistem diski adsız bir QEMU aygıtı olarak görür; hangi fiziksel diskin geçirildiğini TrueNAS arayüzünden ayırt edemezsiniz.
Tek Diskiniz Varsa: hdsize ile Ayırdığınız Alan
Yukarıdaki örnek ikinci bir fiziksel diski geçiriyor. Yazının başındaki uyarının konusu olan tek disk senaryosunda ise kurulumda hdsize ile boş bıraktığınız alanda bir bölüm açıp onu geçirirsiniz:
sgdisk -n 0:0:0 /dev/sda
partprobe /dev/sda
ls -l /dev/disk/by-id/ | grep part
qm set 144 --scsi1 /dev/disk/by-id/ata-KINGSTON_SA400S37480G_50026B7683F1A204-part4,serial=50026B7683F1A204
Bu qm set, yukarıdaki iki diskli örnektekinin yerine çalıştırılır; ikisi aynı yuvayı (scsi1) kullanır.
Bunun ne kazandırdığı açık: ayrı disk almadan TrueNAS’ı deneyebiliyorsunuz. Ne kaybettirdiği ise daha az açık ve söylenmeden geçilmemeli: havuz, Proxmox’un kendisinin çalıştığı diskin üzerinde duruyor. Disk öldüğünde hipervizör de veri de aynı anda gider — yani bu kurulumda TrueNAS bir yedekleme çözümü değil, bir öğrenme ortamıdır. Gerçekten yedek tutacaksanız veri başka bir fiziksel cihazda olmalı.
Bellek satırındaki 8192 bir öneri değil, TrueNAS SCALE’in asgarisi. Bu kurulumun asıl sınırı burada: 16 GB belleği olan bir dizüstüde 8 GB’ı TrueNAS’a verdiğinizde pfSense, Pi-hole, PiVPN ve Uptime Kuma’ya kalan 8 GB’dır. Daha az bellekli bir makinede TrueNAS’ı listeden çıkarmak, hepsini birden sıkıştırmaktan iyidir.
Ağ ayarını TrueNAS konsol menüsünden yapın (1) Configure network interfaces): 192.168.1.144/24, gateway 192.168.1.1. Arayüz http://192.168.1.144 adresinde; havuzu buradan oluşturup üstüne dataset ve SMB paylaşımı tanımlayabilirsiniz.
Doğrulama, TrueNAS kabuğunda:
lsblk -o NAME,SIZE,SERIAL
NAME SIZE SERIAL
sda 32G drive-scsi0
sdb 931.5G S6PTNJ0T412345
sdb satırında gerçek seri numarasını görüyorsanız doğru disk geçmiş demektir. Buna karşılık SMART verisi bu yolla tam gelmez; disk sağlığını Proxmox host’unda smartctl -a /dev/sdb ile izlemeye devam edin.
elxa-dal.local: Hepsini Tek Ekrandan İzlemek
pct create 141 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname elxa-dal \
--cores 2 --memory 1024 --swap 512 \
--rootfs local-lvm:8 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.141/24,gw=192.168.1.1 \
--nameserver 192.168.1.145 \
--unprivileged 1 --onboot 1
pct start 141
Uptime Kuma’yı bu konteynerde Docker’sız, doğrudan Node.js ile kuruyoruz — adım adım kurulumu ve systemd servis tanımını Proxmox homelab yazısında ayrıntılı anlattım. Arayüz http://192.168.1.141:3001 adresinde açılır. Bu lab için eklenecek kontroller:
| İzlenen | Monitör türü | Hedef |
|---|---|---|
| Proxmox arayüzü | HTTP(s) | https://192.168.1.140:8006 — sertifika doğrulaması kapalı |
| pfSense WAN arayüzü | Ping | 192.168.1.143 |
| Pi-hole servisi | DNS | herhangi bir ad, çözümleyici 192.168.1.145 |
| TrueNAS arayüzü | HTTP(s) | http://192.168.1.144 |
| PiVPN makinesi | Ping | 192.168.1.142 |
Tabloda pfSense’in WAN adresi var, LAN geçidi (10.10.10.1) değil — ve bunun sebebi tam olarak bu kurulumun amacı. Uptime Kuma vmbr0 üzerinde, yani ev ağında duruyor; 10.10.10.0/24 ağına oraya bir yönlendirme ve pfSense WAN’ında bir izin kuralı olmadan ulaşamaz. Lab ağının ev ağından erişilemiyor olması arıza değil, kurulumun kendisi. LAN tarafını da izlemek isterseniz Uptime Kuma’yı vmbr1‘e taşımanız gerekir.
Pi-hole satırı Ping değil DNS olmalı. Konteynere Ping atmak makinenin ayakta olduğunu söyler; pihole-FTL çökmüşse Ping yine yeşil kalır ama ağdaki hiçbir cihaz isim çözemez. DNS monitörü cevabın kendisini ister.
WireGuard için tabloda port kontrolü yok, çünkü WireGuard UDP kullanır ve UDP’de “port açık mı” diye sorulabilecek bir el sıkışma yoktur. Tünelin gerçekten çalıştığını wg show çıktısındaki latest handshake satırı gösterir; bunu izlemenin yolu bir port kontrolü değil, kendi yazacağınız küçük bir kontroldür.
Yanlış Yapılırsa: Bu Kurulumda En Sık Batılan Beş Yer
1. pfSense LAN’ını fabrika ayarında bırakmak. 192.168.1.1/24 ev ağınızla birebir çakışır; iki ağ üst üste biner ve hangi cihazın nereye gittiği belirsizleşir.
2. pfSense WAN’ında özel ağ bloğunu açık unutmak. Arayüze WAN tarafından ulaşamazsınız ve sorunu “kurulum bozuldu” sanıp baştan kurarsınız — ikinci kurulum da aynı yerde takılır.
3. Pi-hole’un yukarı akışını modeme çevirmek. Modem DNS olarak Pi-hole’u dağıtıyorsa sorgu ikisi arasında döner. Belirti kesin bir arıza değil, “internet bazen yavaş” olduğu için haftalarca fark edilmez.
4. CGNAT’ı yapılandırma hatası sanmak. Port yönlendirme ekranındaki her ayar doğruyken bile tünel kurulmaz. curl -s ifconfig.me çıktısını modemin WAN adresiyle karşılaştırmak beş saniye sürer ve saatlerce süren aramayı bitirir.
5. TrueNAS’a sanal disk vermek. Kurulum sorunsuz biter, havuz oluşur, paylaşım çalışır. Kaybettiğiniz şey görünmez: ZFS artık diskin gerçek durumunu göremediği için bir donanım hatasını size bildiremez. Yedeklemenin var olduğunu sandığınız yerde yedeğiniz yoktur.
Doğrulama: Hangi Komut Neyi Kanıtlıyor?
| Komut | Nerede | Kanıtladığı |
|---|---|---|
grep -Eo 'vmx|svm' /proc/cpuinfo | Proxmox host | Donanım sanallaştırma açık |
qm list ve pct list | Proxmox host | Makinelerin hepsi running |
dig @192.168.1.145 doubleclick.net +short | herhangi bir istemci | Pi-hole engellemesi devrede (0.0.0.0) |
traceroute 1.1.1.1 | lab-istemci (vmbr1) | İlk atlama 10.10.10.1 — trafik pfSense’ten geçiyor |
wg show | elodin | latest handshake satırı var — tünel gerçekten kurulmuş |
lsblk -o NAME,SIZE,SERIAL | lorren | Fiziksel diskin seri numarası görünüyor |
Tablonun tamamı okuma; tek gerçek tatbikat şudur: makineyi kapatıp açın. --onboot 1 verilmemiş bir konteyner ya da Start at boot işaretlenmemiş bir VM, ilk elektrik kesintisinden sonra geri gelmez ve bunu ancak ihtiyaç duyduğunuzda fark edersiniz.
Sonuç
- Homelab’in maliyeti donanım değil, elektrik ve dikkattir. Eski bir dizüstü altı servisi taşır; asıl sınır CPU değil bellektir ve o sınıra ilk çarpan TrueNAS olur.
- Sanallaştırma her servisi sanallaştırmaz. Diskin gerçek durumuna erişmesi gereken bir NAS ile ağın kenarında durması gereken bir güvenlik duvarı, sanal ortamda ödün vererek çalışır — hangi ödünü verdiğinizi bilerek kurun.
- Ev ağının içine ikinci bir ağ kurmak, ilkini bozmadan deneme hakkı verir. pfSense’in LAN’ı olan
10.10.10.0/24üzerinde kural yazmak, NAT bozmak ve baştan kurmak evdeki kimsenin internetini kesmez. - Bir servisin kurulmuş olması çalıştığı anlamına gelmez. Pi-hole’un iki farklı çözümleyiciye sorulan aynı soruya farklı cevap vermesi,
wg showçıktısındaki el sıkışma satırı,lsblk‘teki seri numarası — üçü de kurulumun değil, işleyişin kanıtı.
Bu kurulumdan bir yıl sonra aynı işi masaüstü bir makinede ve bu kez izleme altyapısını önce kurarak tekrarladım: Evdeki Veri Merkezi: Proxmox ile Kendi Homelab’inizi Kurun.


