Utilitas lama ipfw
tidak disarankan dalam versi terbaru Mac OS X dan sekarang hilang dari El Capitan.
Apa cara modern untuk melakukan penerusan pelabuhan di El Capitan?
Saya hanya ingin port 80 untuk meneruskan ke port 8080.
Utilitas lama ipfw
tidak disarankan dalam versi terbaru Mac OS X dan sekarang hilang dari El Capitan.
Apa cara modern untuk melakukan penerusan pelabuhan di El Capitan?
Saya hanya ingin port 80 untuk meneruskan ke port 8080.
Jawaban:
Untuk meneruskan semua lalu lintas port 80 ke port 8080, Anda dapat memasukkan yang berikut dari baris perintah Terminal.
echo "
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
" | sudo pfctl -ef -
Diambil dari https://salferrarello.com/mac-pfctl-port-forwarding/
sudo pfctl -F all -f /etc/pf.conf
,, dan untuk menampilkan aturan penerusan port Anda saat ini,sudo pfctl -s nat
pf.conf
file
Cara modern untuk meneruskan port di El Capitan sedang digunakan pf
. Dalam contoh di bawah ini, semua permintaan port 80 diteruskan ke port 8080 pada host yang sama. Harap sesuaikan pengalihan dengan kebutuhan Anda.
Buat file anchor org.user.forwarding di /private/etc/pf.anchors
sudo touch /private/etc/pf.anchors/org.user.forwarding
dengan konten berikut dan baris kosong yang tertinggal
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on en0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on en1 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
atau
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
Ubah file /private/etc/pf.conf tetapi simpan baris kosong yang tertinggal
file asli:
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
untuk
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "org.user.forwarding"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "org.user.forwarding" from "/etc/pf.anchors/org.user.forwarding"
Parsing dan uji file anchor Anda untuk memastikan tidak ada kesalahan:
sudo pfctl -vnf /etc/pf.anchors/org.user.forwarding
Sekarang ubah /System/Library/LaunchDaemons/com.apple.pfctl.plist dari
<array>
<string>pfctl</string>
<string>-f</string>
<string>/etc/pf.conf</string>
</array>
untuk
<array>
<string>pfctl</string>
<string>-e</string>
<string>-f</string>
<string>/etc/pf.conf</string>
</array>
Anda harus menonaktifkan Perlindungan Integritas Sistem untuk mencapai ini. Setelah mengedit file SIP diaktifkan kembali. Setelah reboot Mac pf Anda akan diaktifkan (itulah opsi -e).
Atau Anda dapat membuat daemon peluncuran Anda sendiri mirip dengan jawaban di sini: Menggunakan Server 5.0.15 untuk berbagi internet TANPA berbagi internet .
Setelah sistem memperbarui atau memutakhirkan beberapa file asli di atas mungkin telah diganti dan Anda harus menerapkan kembali semua perubahan.
Jika Anda ingin meneruskan di berbagai antarmuka Anda harus mengaktifkan ini di /etc/sysctl.conf:
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
ping
adalah teman Anda dalam mendiagnosis masalah jaringan.
Untuk memperluas solusi dari jawaban @ sal-ferrarello, saya membuat dua Script Shell super-dasar untuk mengaktifkan atau menonaktifkan pengalihan tanpa mengurangi entri yang sudah ada di pf
.
I. Pertama temukan entri apa yang sudah Anda miliki dengan:
sudo pfctl -s nat
Output saya seperti:
No ALTQ support in kernel
ALTQ related functions disabled
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
Yang menarik bagi kami adalah entri aktual jadi ommit dua baris info pertama.
II Buat enable.sh
skrip:
#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
" | sudo pfctl -ef -
sudo pfctl -s nat
Dua baris pertama setelah itu echo
adalah entri yang sudah ada di sana. Baris ketiga adalah dengan redirect baru - dalam hal ini 80 hingga 8080. Pada akhirnya kami memanggil sudo pfctl -s nat
untuk melihat apakah perubahan diterapkan.
AKU AKU AKU. Buat disable.sh
skrip:
Mirip dengan enable.sh
kita membuat skrip, tetapi tanpa 80-> 8080 redirect, tetapi dengan entri yang sudah ada sebelumnya:
#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
" | sudo pfctl -ef -
sudo pfctl -s nat