Bagaimana port lokal ditentukan
Nomor port dipilih oleh perangkat lunak implementasi TCP dari sejumlah nomor port yang disebut Ephemeral Ports .
Mekanisme yang tepat untuk memilih nomor port dan kisaran yang akan digunakan bergantung pada Sistem Operasi.
Apakah ada cara untuk memaksanya menjadi 63999.
Ini dapat dilakukan dengan mengubah konfigurasi perangkat lunak implementasi TCP.
Petunjuk tentang konfigurasi rentang Pelabuhan Ephemeral untuk berbagai Sistem Operasi yang berbeda dapat ditemukan di Mengubah Rentang Pelabuhan Ephemeral .
- Petunjuk untuk Linux dan Windows disertakan dalam jawaban di bawah ini untuk referensi.
Namun, itu bukan ide yang baik untuk membatasi jangkauan ke satu port, misalnya 63999
.
Rentang Pelabuhan Ephemeral
Koneksi TCP / IPv4 terdiri dari dua titik akhir, dan setiap titik akhir terdiri dari alamat IP dan nomor port. Oleh karena itu, ketika pengguna klien terhubung ke komputer server, koneksi yang dibuat dapat dianggap sebagai 4-tupel (server IP, port server, IP klien, port klien).
Biasanya tiga dari empat sudah dikenal - mesin klien menggunakan alamat IP-nya sendiri dan ketika menghubungkan ke layanan jarak jauh, alamat IP mesin server dan nomor port layanan diperlukan.
Apa yang tidak segera terbukti adalah bahwa ketika koneksi dibuat bahwa sisi klien koneksi menggunakan nomor port. Kecuali jika program klien secara eksplisit meminta nomor port tertentu, nomor port yang digunakan adalah nomor port sesaat.
Port Ephemeral adalah port sementara yang ditetapkan oleh tumpukan IP mesin, dan ditugaskan dari berbagai port yang ditunjuk untuk tujuan ini. Ketika koneksi berakhir, porta sesaat tersedia untuk digunakan kembali, meskipun sebagian besar tumpukan IP tidak akan menggunakan kembali nomor port sampai seluruh kumpulan porta sesaat telah digunakan.
Jadi, jika program klien terhubung kembali, ia akan diberi nomor porta sesaat yang berbeda untuk sisi koneksi baru.
Sumber Rentang Pelabuhan Ephemeral
Mengubah Kisaran Pelabuhan Ephemeral
Linux:
Linux memungkinkan Anda untuk melihat dan mengubah rentang port sementara hanya dengan menggunakan file /proc/sys/net/ipv4/ip_local_port_range
. Sebagai contoh, ini menunjukkan konfigurasi default pada sistem kernel 2.2:
$ cat /proc/sys/net/ipv4/ip_local_port_range
1024 4999
Untuk mengubahnya ke rentang yang disukai, Anda bisa melakukan (sebagai superuser):
# echo "49152 65535" > /proc/sys/net/ipv4/ip_local_port_range
Perhatikan bahwa Anda perlu melakukan ini setiap kali sistem melakukan boot, jadi pastikan untuk menambahkan baris ke skrip startup sistem seperti /etc/rc.local
agar rentang Anda selalu digunakan.
Juga perhatikan bahwa kernel Linux 2.4 akan default kisaran 32768 hingga 61000 jika memori kernel yang memadai tersedia, jadi mengubah kisaran mungkin tidak diperlukan pada sistem Linux yang lebih baru.
Terakhir, perhatikan juga bahwa Anda mungkin dapat menggunakan sysctl
antarmuka untuk mengubah pengaturan daripada menggunakan sistem /proc
file. Nama sysctl
parameternya adalah "net.ipv4.ip_local_port_range". Edit /etc/sysctl.conf
file jika Anda memilikinya, atau minta skrip startup menjalankan sysctl
perintah secara manual jika Anda ingin mengubah parameter ini menggunakan sysctl
.
Windows Vista / Windows Server 2008 dan yang lebih baru:
Pada Windows Vista dan Windows Server 2008, Windows sekarang menggunakan rentang besar (49152-65535) secara default, menurut Artikel Microsoft Knowledgebase 929851 . Artikel yang sama juga menunjukkan bagaimana Anda dapat mengubah rentang jika diinginkan, tetapi rentang default sekarang cukup untuk sebagian besar server.
Sumber Mengubah Rentang Port Ephemeral
Anda dapat melihat rentang port dinamis pada komputer yang menjalankan komputer Windows Vista atau Windows Server 2008 dengan menggunakan netsh
perintah berikut
:
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
Catatan:
- Rentang ini ditetapkan secara terpisah untuk setiap transportasi dan untuk setiap versi IP.
- Rentang port sekarang benar-benar rentang dengan titik awal dan titik akhir.
- Pelanggan Microsoft yang menggunakan server yang menjalankan Windows Server 2008 mungkin memiliki masalah dengan komunikasi RPC antar server jika firewall digunakan pada jaringan internal.
- Dalam kasus ini, kami sarankan Anda mengkonfigurasi ulang firewall untuk memungkinkan lalu lintas antara server di berbagai pelabuhan dinamis
49152
melalui 65535
.
- Kisaran ini merupakan tambahan untuk port-port terkenal yang digunakan oleh layanan dan aplikasi.
- Atau, rentang port yang digunakan oleh server dapat dimodifikasi di setiap server.
Anda menyesuaikan rentang ini dengan menggunakan netsh
perintah, sebagai berikut:
netsh int <ipv4|ipv6> set dynamic <tcp|udp> start=number num=range
Perintah ini menetapkan rentang port dinamis untuk TCP. Port awal adalah angka, dan jumlah total port adalah kisaran. Berikut ini adalah contoh perintah:
netsh int ipv4 set dynamicport tcp start=10000 num=1000
netsh int ipv4 set dynamicport udp start=10000 num=1000
netsh int ipv6 set dynamicport tcp start=10000 num=1000
netsh int ipv6 set dynamicport udp start=10000 num=1000
Perintah sampel ini mengatur rentang port dinamis untuk mulai di port 10000 dan berakhir di port 10999
(1000 port).
Catatan:
- Kisaran minimum port yang dapat diatur adalah
255
.
- Port awal minimum yang dapat ditetapkan adalah
1025
.
- Port akhir maksimum (berdasarkan kisaran yang sedang dikonfigurasi) tidak dapat melebihi
65535
.
- Untuk menduplikasi perilaku default Windows Server 2003, gunakan
1025
sebagai port awal, dan kemudian gunakan 3976
sebagai rentang untuk TCP dan UDP. Ini menghasilkan port awal 1025
dan port akhir 5000
.
Sumber Microsoft Knowledgebase Article 929851 :
Windows XP dan yang lebih lama:
Untuk sistem operasi Windows yang lebih lama (Windows XP dan yang lebih tua), Windows menggunakan rentang BSD tradisional 1024 hingga 4999 untuk rentang port yang sementara. Sayangnya tampaknya Anda hanya dapat mengatur batas atas rentang port sementara. Berikut ini informasi yang dikutip dari Microsoft Knowledgebase Article 196271 :
- Mulai Penyunting Registri (
Regedt32.exe
).
Temukan kunci berikut dalam registri:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Pada menu "Edit", klik "Tambah Nilai", dan kemudian tambahkan nilai registri berikut:
Nama Nilai: MaxUserPort
Tipe Data: REG_DWORD
Nilai: 65534
(misalnya)
Rentang Valid: 5000-65534
(desimal) Default: 0x1388
(5000 desimal)
Deskripsi: Parameter ini mengontrol nomor port maksimum yang digunakan ketika aplikasi meminta port pengguna yang tersedia dari sistem. Biasanya, pelabuhan sementara (yaitu, berumur pendek) dialokasikan antara nilai-nilai 1024
dan 5000
inklusif.
Keluar dari Penyunting Registri.
Catatan: Ada artikel KB lain yang relevan ( 812873 ) yang mengklaim memungkinkan Anda untuk menetapkan rentang pengecualian, yang bisa berarti bahwa Anda dapat mengecualikan port 1024-9999
(misalnya) untuk memiliki kisaran port sesaat 10000-65534
. Namun, kami belum dapat menjalankannya (per Oktober 2004).
Sumber Mengubah Rentang Port Ephemeral