Saya ingin koneksi yang masuk pada ppp0 pada port 8001 akan dialihkan ke 192.168.1.200 pada eth0 pada port 8080.
Saya punya dua aturan ini
-A PREROUTING -p tcp -m tcp --dport 8001 -j DNAT --to-destination 192.168.1.200:8080
-A FORWARD -m state -p tcp -d 192.168.1.200 --dport 8080 --state NEW,ESTABLISHED,RELATED -j ACCEPT
dan itu tidak berhasil. Apa yang saya lewatkan?
Jawaban:
Pertama-tama - Anda harus memeriksa apakah penerusan diizinkan sama sekali:
Jika keduanya kembali
1
tidak apa-apa. Jika tidak lakukan hal berikut:Hal kedua -
DNAT
bisa diterapkan di atasnat
meja saja. Jadi, aturan Anda harus diperluas dengan menambahkan spesifikasi tabel juga (-t nat
):Kedua aturan hanya diterapkan untuk lalu lintas TCP (jika Anda ingin mengubah UDP juga, Anda harus memberikan aturan yang sama tetapi dengan
-p udp
set opsi).Terakhir, namun tidak kalah pentingnya adalah konfigurasi perutean. Tipe:
dan periksa apakah
192.168.1.0/24
ada di antara entri rute yang dikembalikan.sumber
sysctl
sintaksisnya sepertisysctl net.ipv4.conf.eth0.forwarding=1
-A
dengan-D
Saya pikir yang Anda inginkan adalah:
sumber
Anda lupa postrouting alamat sumber SNAT:
Dan jangan lupa untuk mengatur firewall linux Anda sebagai gateway default di komputer dengan alamat 192.168.1.200.
sumber
POSTROUNTING
tangga. Pada titik ini pembicaraan masih tentang--destination
bukan--source
.Saya telah membuat skrip bash berikut untuk melakukan ini di router linux saya. Ini secara otomatis menyimpulkan IP WAN dan mengonfirmasi pilihan Anda sebelum melanjutkan.
Penggunaan skrip sederhana cukup salin dan tempel ke file lalu.
Untuk menghapus aturan yang sama
Saya pikir ini mungkin menghemat waktu seseorang di router masing-masing.
sumber
Saya memiliki tugas untuk membuat MACHINE_A berpikir bahwa layanan ini berjalan secara fisik di MACHINE_B, tetapi secara transparan merutekan ulang semua permintaan ke MACHINE_C.
Caranya adalah dengan menggunakan MASQUERADE.
Harap perhatikan bahwa Anda mungkin ingin mengubah perintah:
Untuk memungkinkan penerusan paket hanya pada antarmuka tertentu. Sebagai contoh:
Untuk mengizinkan tidak hanya MACHINE_A, tetapi juga semua orang lain menggunakan penerusan port, hapus:
sumber
Mencoba
File-file ini memberi tahu kernel bahwa itu diperbolehkan untuk meneruskan paket-paket antar antarmuka.
sumber
Perintah ini tidak berfungsi untuk saya:
Saya memiliki 2 antarmuka LAN dan MAJU bekerja ketika saya akan menulis:
PREROUTING dan FORWARD juga diperlukan, tentu saja :)
sumber