mcp uzak masaüstü: bir MCP sunucusunu bağlamak — uygulanmış örnek

MCP kontrol düzleminden uzak bir makineye güvenilir bir kanal gerekir; NAT, kurumsal güvenlik duvarları veya işletim sistemi gizlilik izinleri ortaya çıkınca internette bulduğunuz tek-cümlelik kılavuzlar yardım etmez.
MCP kontrol düzleminden uzak bir makineye güvenilir bir kanal gerekir; NAT, kurumsal güvenlik duvarları veya işletim sistemi gizlilik izinleri ortaya çıkınca internette bulduğunuz tek-cümlelik kılavuzlar yardım etmez. Bu kılavuz teknik bilgisi olan bir mühendisi somut bir kurulum örneği boyunca yönlendirir, çalıştırmanız gereken operasyonel kontrolleri gösterir ve çoğu dokümanda atlanan belirsiz hata modlarını belgeleyerek pratik çözümler sunar.
Bu kılavuzun kapsamı
- Tenvo'nun yönetilen relay hizmeti ile hızlı, düşük çaba gerektiren yol (önerilir)
- Ubuntu'da TLS ve bir ters proxy ile kendi kendine barındırılan bir MCP sunucusunun uygulanmış kablo bağlantı örneği
- Kimsenin belgelerde anlatmadığı başarısızlık modları — NAT türleri, captive portal'lar, MTU, sertifika uyuşmazlığı, uyku modu ve daha fazlası — ve somut hafifletmeler
- Hemen çalıştırabileceğiniz komutları içeren kısa bir sorun giderme kontrol listesi
Hızlı yol: Tenvo'nun yönetilen relay hizmeti (önerilir)
Uzak makinelerle güvenilir şekilde erişim kurmanız gerekiyorsa en hızlı ve güvenilir seçenek Tenvo'nun yönetilen relay'idir. Tenvo, Windows, macOS ve Linux için yerel istemciler, bir tarayıcı istemcisi (herkese açık beta) ve oturumların veri merkezleri arasında failover yapmasına izin veren çok bölgelik yönetilen bir relay sağlar. Fiyatlandırma basittir: Free $0 / Lite $2.99/mo / Pro $7.99/mo. Yönetilen relay, çağrı üzerine yamalama, sertifika yenileme ve anahtar saklama gibi sizin tarafınızda yapılması gereken operasyonları ortadan kaldırır — bunlar, zaman ve risk dahil edildiğinde küçük bir aylık ücretten daha pahalıya mal olabilen işlerdir.
Önemli güvenlik notu: Tenvo, cihaz başına sertifikalar ile TLS kullanır. Doğrudan peer-to-peer bağlantı kurulduğunda oturum iki cihaz arasında uçtan uca şifrelenir. Trafik bir relay'e düşerse TLS relay'de sonlandırılır; bu nedenle relay'i işleten taraf oturum trafiğini inceleyebilir. Bu ödünleşme, üçüncü taraf altyapısını yasaklayan yazılı gereksinimleriniz yoksa yönetilen relay'i pratik varsayılan olarak önermemizin nedenidir.
Bir MCP sunucusunu bağlamak: uygulanmış örnek (kendi kendine barındırılan)
Bu bölüm, bir MCP sunucusunu kendi kendinize barındırmaya karar verdiğinizde izleyeceğiniz somut bağlantı adımlarını gösterir. Kendi kendine barındırma yalnızca zorunlu olduğunda yapılmalıdır: düzenleyici bir zorunluluk, izole ağlar veya açık veri-yerleşim kuralları gibi. Örnek, küçük bir VPS (203.0.113.10) üzerinde Ubuntu 22.04 LTS, TLS ters proxy olarak Caddy v2.6+ ve NAT arkasındaki uzak bir makinede bir MCP ajanı (192.168.1.42) kullanır. Host adlarını ve token'ları kendi değerlerinizle değiştirin.
# Diagram (text) # Public VPS (203.0.113.10) # - Caddy reverse proxy (443) # - MCP control API (127.0.0.1:8443 behind proxy) # Remote machine (behind NAT) # - mcp-agent initiates outbound TLS to mcp.example.com:443 and registers itself # - If direct P2P works, control traffic flows peer-to-peer; otherwise control flows via proxy
1) Kalıcı bir DNS adı ve sertifikalar edinin: mcp.example.com VPS'nizin genel IP'sine (203.0.113.10) işaret etmelidir. TLS için Caddy kullanıyoruz; Caddy otomatik TLS ve ters proxy yönetimi sağlar. Caddy v2.6+ pratik bir seçimdir çünkü Let's Encrypt ve HTTP/2/3 yapılandırmasını otomatikleştirir.
# Caddyfile (example)
mcp.example.com {
reverse_proxy 127.0.0.1:8443
}
# Run Caddy as a system service; Caddy will provision managed certificates
2) MCP kontrol API'nizi VPS üzerinde 127.0.0.1:8443 adresinde çalıştırın. Kontrol düzlemini loopback'e bağlayın, böylece yalnızca ters proxy bunu herkese açık hale getirir.
# Example systemd unit (mcp-control.service) [Unit] Description=MCP control API After=network.target [Service] ExecStart=/usr/local/bin/mcp-control --listen 127.0.0.1:8443 --db /var/lib/mcp/control.db Restart=on-failure [Install] WantedBy=multi-user.target
3) VPS üzerinde güvenlik duvarı kurallarını açın: gelen 443/tcp ve gerekli giden trafiğe izin verin. UFW için minimal örnek:
sudo ufw allow 443/tcp sudo ufw enable sudo ufw status numbered
4) Uzak makinedeki ajanı bağlantıyı başlatacak şekilde yapılandırın (önemli — ajanlar çoğu ortamda yalnızca çıkış yapmalı). Örnek ajan yapılandırması (mcp-agent.conf):
{
"server": "https://mcp.example.com",
"register_token": "REPLACE_WITH_LONG_TOKEN",
"heartbeat_interval": 30,
"local_port": 5900
}
# Start agent as a system service on the remote machine so it survives reboots
5) Uzak makineden TLS ve kayıt doğrulamasını kontrol edin:
# Check DNS dig +short mcp.example.com # Verify TLS handshakes and served certificate openssl s_client -connect mcp.example.com:443 -servername mcp.example.com # Check agent logs (journalctl or the agent's log file) journalctl -u mcp-agent -f
6) Kontrol düzleminden bağlantıyı doğrulayın: kontrol API'si ajanı listelemeli ve son heartbeat zamanını göstermelidir. Tipik adımlar: kontrol API'sine yerel (loopback) olarak çağrı yapın ve cihaz durumunu inceleyin.
# Example local curl check on the VPS
curl --unix-socket /run/mcp-control.sock "http://localhost/api/v1/devices" | jq '.devices[] | {id,hostname,last_seen}'
Belgelerde geçmeyen başarısızlık modları
- Kısıtlayıcı güvenlik duvarları tarafından çıkan trafik engellemesi: Birçok kurumsal ortam yalnızca açıkça yapılandırılmış bir proxy üzerinden HTTP/HTTPS'yi izin verir. Yalnızca doğrudan TLS destekleyen bir ajan başarısız olur. Hafifletme: ajanınız HTTP CONNECT proxy'lerini desteklemeli veya yönetilen relay kullanılmalıdır.
- Captive portal'lar: Otel veya kafelerde tarayıcı ile kabul gerektiren ağlar otomatik kaydı bozar. Bunu http://detectportal.firefox.com/ gibi bilinen bir HTTP uçnoktasını sorgulayarak tespit edin; HTML ile yönlendirme (redirect) dönüyorsa bunu captive portal olarak değerlendirin.
- Simetrik NAT: Hedefe göre port eşlemelerini değiştiren NAT'ler UDP hole punching'i ve bazı relay optimizasyonlarını bozar. Sonuç: zorunlu TCP relay, daha yüksek gecikme. Hafifletme: relay'inizin TCP fallback'i desteklediğinden emin olun ve NAT eşlemesinin süresinden kaçınmak için keepalive sıklığını artırın.
- Aralıklı DNS veya split-horizon DNS: Kontrol düzlemi adı kurumsal ağ içinde farklı çözülürse veya ISP DNS cache eski IP döndürürse ajanlar yanlış host'a veya süresi dolmuş sunucuya bağlanır. Geçişlerde düşük TTL kullanın ve DNS yayılımını izleyin.
- TLS sertifika uyuşmazlığı veya SNI hataları: Sertifikayı doğrulayan bir ajan SNI eksikse veya sertifika host adını içermiyorsa başarısız olur. Testlerde
openssl s_client -servernameile vecurl --resolveveyacurl --cacertile kontrol edin. - VPN'lerde MTU ve parçalanma: Path MTU black hole'ları protokol müzakeresini öldürebilir, özellikle UDP için. Kullanıcılar kısmi el sıkışmaları (handshake) bildiriyorsa UDP yük boyutlarını düşürmeyi veya TCP zorlamayı deneyin.
- İşletim sistemi gizlilik izinleri: macOS ekran kaydı ve erişilebilirlik izinleri için açıkça izin ister; Windows UAC istemleri bazı kurulumlarda giriş yakalamayı engeller. Bunlar ağ hatası değildir ama ulaşılamayan oturumlara benzer görünür.
- Uyku, hızlı başlatma ve enerji yönetimi: Askıya alınan dizüstü bilgisayarlar uyanana kadar yanıt vermez. Sunucular için wake-on-LAN yapılandırın veya eski oturumları hızlı tespit etmek için sürekli çıkış heartbeat'leri kullanın.
- Relay aşırı yükü ve tek-bölge failover: Çok bölgeli failover olmadan tek bir relay barındırıyorsanız, bir bulut bölgesi arızası veya DoS kontrol bağlantısını kesecektir. Tenvo'nun çok bölgeli yönetilen relay'i bu riski azaltmak için tasarlanmıştır.
Pratik sorun giderme kontrol listesi ve komutlar
- DNS ve TLS'i doğrulayın: dig +short mcp.example.com; openssl s_client -connect mcp.example.com:443 -servername mcp.example.com
- Ajan loglarını kontrol edin: journalctl -u mcp-agent -f veya tail -F /var/log/mcp-agent.log — kayıt ve heartbeat mesajlarını arayın
- Aktif bağlantıları inceleyin: ss -tnp | grep 443 veya netstat -anp | grep ESTAB ile ajanın yerel olarak kurulmuş bir çıkış soketi olup olmadığını görün
- Captive portal testi: curl -I http://detectportal.firefox.com/ — beklenen 200 ve basit bir gövde; yönlendirmeler captive portal işaretidir
- Başarısız bir oturum için paket yakalayın: sudo tcpdump -i any host mcp.example.com and port 443 -w capture.pcap — Wireshark'ta TLS el sıkışma durumlarını inceleyin
- SNI ve sertifika eşleşmesini doğrulayın: openssl s_client -connect mcp.example.com:443 -servername mcp.example.com | sed -n '1,80p'
- NAT türü sorunlarını kontrol edin: Ajanınız bir STUN testi çalıştırabiliyorsa çalıştırın. Aksi halde UDP hole punching'in problem olup olmadığını belirlemek için TCP-only testi yapın.
- İşletim sistemi izinlerini doğrulayın: macOS'ta System Settings → Privacy & Security → Screen Recording; Windows'ta UAC ve uygulamanın UIAccess gereksinimleri için manifest'i kontrol edin
Ne zaman bir MCP sunucusunu kendi kendinize barındırmalısınız
MCP sunucusunu kendi kendinize barındırmak ancak yazılı bir gereksiniminiz varsa mantıklıdır: uyumluluk kuralı üçüncü taraf relay'lerini yasaklıyorsa, çıkış olmayan izole bir ağınız varsa veya sıkı bir veri-yerleşim kuralınız varsa. Aksi halde operasyonel maliyeti hesaplayın: sertifika yaşam döngüsü, OS ve uygulama yamalama, anahtar saklama, çok bölgeli failover, izleme, çağrı hattı zamanı ve tek-bölge arızasının maliyeti. Dengeli, dürüst bir bakış için Self-Hosted Remote Desktop: Why, How, and What Breaks başlıklı daha derin içeriğimize bakın.
İlgili bağlantılar ve ek okumalar
- NAT ve port gerektirmeyen çalışma için, Remote Desktop Without Port Forwarding Explained adlı yazıyı okuyun.
- Hızlıca uzak erişim kuruyorsanız, kontrol listemiz iyi bir yardımcıdır: How to Set Up Remote Access in 60 Seconds.
Özet — runbook ve sonraki adımlar
Özet runbook: yazılı bir kısıtlama yoksa önce Tenvo'nun yönetilen relay'i ile başlayın; kendi kendinize barındırmak zorundaysanız TLS'i yönetmek için bir ters proxy (Caddy) kullanın, kontrol API'sini loopback'e bağlayın, ajanların çıkış bağlantılarını başlatmasını zorunlu kılın ve heartbeat'leri izleyin. İşler bozulduğunda yukarıdaki DNS/TLS/ajan-log/paket-yakalama kontrol listesini çalıştırın. Belirsiz hata modları — captive portal'lar, simetrik NAT, işletim sistemi izinleri ve MTU — yaygındır, tekrarlanabilir ve test ettikten sonra düzeltilebilir.
Hızlı yolu denemeye hazır mısınız? Tenvo istemcilerini indirip yönetilen relay ile test edin: Tenvo'yu indir. Daha derin kendi kendine barındırma rehberine ihtiyacınız varsa, self-hosted remote desktop kılavuzumuzla başlayın ve buraya kablo bağlantısı kontrol listesi ile hata modu oyunkitabı için geri dönün.
Kendiniz denemeye hazır mısınız?
30 cihaza kadar ücretsiz, kredi kartı gerekmiyor. İki dakikada kurulur ve bağlanır.