Di Windows, dimulai dengan Windows XP, ada opsi instalasi bawaan port forwarding / penerusan (port penerusan) Karena fitur ini, koneksi TCP yang masuk (IPv4 atau IPv6) ke port lokal) dapat dialihkan ke port lain atau bahkan ke port pada komputer jarak jauh. Selain itu, tidak perlu bahwa sistem memiliki layanan mendengarkan pada port ini.
Di Linux, port forwarding cukup sederhana menggunakan iptables. Pada sistem Windows Server, port routing biasanya menggunakan Routing dan Remote Access Service (RRAS). Namun, ada cara yang lebih mudah untuk mengonfigurasikan port penerusan, yang berfungsi sama baiknya pada semua versi Windows..
Penerusan port Windows dikonfigurasikan dari baris perintah melalui mode Portproxy Tim Netsh. Sintaks perintahnya adalah sebagai berikut:netsh antarmuka portproxy tambahkan v4tov4 listenaddress = localaddress listenport = localport connectaddress = destaddress connectport = destport
dimana,
- dengarkan nyonya - alamat IP lokal di mana koneksi akan diharapkan
- Listenport - port TCP lokal untuk mendengarkan (koneksi masuk akan diharapkan di sana)
- alamat koneksi - alamat IP lokal atau jarak jauh atau nama DNS yang koneksi masuknya harus dialihkan
- connectport - Port TCP ke mana koneksi dari port Listenport akan dialihkan
Katakanlah tugas kita adalah membuat layanan RDP merespons pada port non-standar, misalnya, 3340 (tentu saja, port ini dapat diubah dalam pengaturan layanan itu sendiri, tetapi kami menggunakan RDP untuk menyederhanakan demonstrasi teknik pengalihan). Untuk melakukan ini, kita perlu mengarahkan lalu lintas masuk ke port TCP 3340 ke port lokal lain - 3389 (port rdp standar).
Catatan. Port ini tidak boleh didengarkan di sistem oleh layanan lain.Jalankan baris perintah dengan hak administrator dan jalankan.
netsh antarmuka portproxy tambahkan v4tov4 listenport = 3340 listenaddress = 10.10.1.110 connectport = 3389 connectaddress = 10.10.1.110
Di mana 10.10.1.110 adalah alamat IP saat ini dari komputer ini
Menggunakan netstat, kami memverifikasi bahwa port 3340 sedang didengarkan di komputer:
netstat -ano | findstr: 3340Catatan. Jika perintah ini tidak mengembalikan apa pun dan penerusan port melalui porta antarmuka netsh interface tidak berfungsi, pastikan layanan iphlpsvc diaktifkan di sistem Anda (Layanan IP Helper / IP Helper Service).
Dan pada antarmuka jaringan tempat aturan penerusan port dibuat, dukungan IPv6 harus diaktifkan.
Ini adalah prasyarat untuk operasi penerusan port yang benar. Tanpa IP Helper dan IPv6 diaktifkan, mekanisme redirection tidak berfungsi.
Anda dapat menentukan proses yang mendengarkan port ini menggunakan PID-nya (dalam contoh kami, PID adalah 636):
daftar tugas | findstr 636
Kami akan mencoba menyambungkan ke komputer ini dari sistem jarak jauh menggunakan klien rdp apa pun. Anda harus menetapkan 3340 sebagai port rdp (port ditentukan setelah titik dua setelah alamat server rdp), misalnya, 10.10.1.110:3340:
Koneksi harus berhasil dibuat.
Itu penting. Periksa bahwa dalam pengaturan firewall Anda (firewall Windows atau firewall pihak ketiga, ini sering termasuk dalam perangkat lunak anti-virus) koneksi masuk ke port baru diperbolehkan. Jika perlu, Anda bisa menambahkan aturan baru ke firewall Windows dengan perintah:
netsh advfirewall firewall tambahkan aturan nama = "RDP_3340" protokol = TCP dir = di localip = 10.10.1.110 localport = 3340 action = allow
Saat membuat aturan firewall yang masuk melalui antarmuka grafis untuk port 3340, Anda tidak perlu mengaitkan program apa pun, karena port ini didengarkan secara eksklusif oleh driver jaringan.
Anda dapat membuat sejumlah aturan penerusan port Windows. Semua aturan portproxy antarmuka netsh adalah permanen dan bertahan pada sistem setelah me-restart Windows.
Kami menampilkan daftar semua aturan penerusan port TCP di sistem:
portproxy antarmuka netsh tampilkan semua
Dalam kasus kami, hanya ada satu aturan penerusan dari port 3340 ke 3389:
Dengarkan di ipv4: Sambungkan ke ipv4:
Alamat Port Alamat Port
--------------- ---------- --------------- ----------
10.10.1.110 3340 10.10.1.110 3389
antarmuka portproxy netsh dump
# ==========================
# Konfigurasi Proxy Port
# ==========================
portproxy antarmuka pushd
atur ulang
tambahkan v4tov4 listenport = 3340 connectaddress = 10.10.1.110 connectport = 3389
popd
# Konfigurasi Proksi Akhir Port
Untuk menghapus aturan pengalihan tertentu:
netsh interface portproxy delete v4tov4 listenport = 3340 listenaddress = 10.10.1.110
Untuk menghapus semua aturan pengalihan yang tersedia:
reset portproxy antarmuka netsh antarmukaItu penting. Skema pengalihan seperti itu hanya berfungsi untuk port TCP ... Lalu lintas di port UDP tidak dapat diarahkan. Anda juga tidak dapat menggunakan alamat 127.0.0.1 sebagai penghubung koneksi.
Jika Anda perlu mengarahkan kembali koneksi TCP yang masuk ke komputer lain, perintahnya mungkin terlihat seperti ini:
netsh antarmuka portproxy tambahkan v4tov4 listenport = 3389 listenaddress = 0.0.0.0 connectport = 3389 connectaddress = 192.168.1.100
Aturan ini akan mengalihkan semua permintaan RDP yang masuk (ke port 3389) dari komputer ini ke komputer jarak jauh dengan alamat IP 192.168.1.100
Fitur implisit lain dari portproxy adalah kemampuan untuk membuat tampilan operasi lokal dari setiap layanan jaringan jarak jauh.
Misalnya, kami membuat pengalihan seperti itu dari port lokal 8888 ke alamat jarak jauh 213.180.204.3:
netsh antarmuka portproxy tambahkan v4tov4 listenport = 8888 connectport = 80 connectaddress = 213.180.204.3 protokol = tcp
Sekarang, jika di peramban buka alamat http: // localhost: 8888 /, halaman mulai Yandex akan terbuka. Yaitu meskipun peramban mengakses komputer lokal, peramban itu membuka halaman jarak jauh.
Port forwarding juga dapat digunakan untuk meneruskan port dari alamat kartu jaringan eksternal ke port pada mesin virtual yang berjalan di komputer yang sama.
Ada juga kasus di mana, di Windows Server 2012 R2, aturan penerusan porta bekerja hanya sampai sistem reboot, dan setelah reboot mereka diatur ulang. Dalam hal ini, Anda perlu memeriksa apakah ada shutdown berkala pada antarmuka jaringan, dan jika alamat IP tidak berubah ketika OS boot (lebih baik menggunakan IP statis). Sebagai solusinya, saya harus menambahkan skrip dengan aturan portproxy antarmuka netsh ke penjadwal Windows, yang berjalan saat sistem melakukan boot.
Di Windows Server 2003 / XP, agar pengalihan berfungsi, Anda juga harus mengaktifkan pengaturan registri IPEnableRouter = 1 di cabang HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Tcpip \ Parameters