GNU/Linux >> Belajar Linux >  >> Linux

Apakah mungkin untuk mensimulasikan tanpa akses eksternal dari mesin Linux saat mengembangkan?

Menghapus rute default harus melakukan ini. Anda dapat menampilkan tabel perutean dengan /sbin/route , dan hapus default dengan:

sudo /sbin/route del default

Itu akan membuat sistem Anda terhubung ke jaringan lokal, tetapi tidak tahu ke mana harus mengirim paket yang ditujukan ke luar. Ini mungkin mensimulasikan situasi "tanpa akses eksternal" dengan sangat akurat.

Anda dapat mengembalikannya dengan route add (mengingat apa seharusnya gateway Anda), atau hanya dengan memulai ulang jaringan. Saya baru saja mencoba sistem dengan NetworkManager, dan mengubah default berfungsi dengan baik, dan saya dapat memulihkannya hanya dengan mengklik ikon panel dan memilih kembali jaringan lokal. Mungkin saja NM melakukan ini sendiri di acara lain, jadi berhati-hatilah.

Pendekatan lain adalah dengan menggunakan iptables aturan untuk memblokir lalu lintas keluar. Tapi menurut saya pendekatan perutean mungkin lebih baik.


Anda menulis

Jadi, bagaimana cara mensimulasikan "tanpa akses eksternal" di mesin pengembangan saya?

Bagaimana cara "menonaktifkan" antarmuka ethernet saya dan mengaktifkannya kembali nanti dengan mudah?

Apakah ini dua pertanyaan atau satu pertanyaan? Saya tidak yakin apa yang Anda maksud dengan simulate "no external access" . Namun, untuk menonaktifkan antarmuka ethernet, Anda cukup melakukannya

#ifdown eth0
#ifup eth0

atau apapun perangkat internet anda. Ini akan menurunkan dan menaikkan antarmuka ethernet Anda.


Anda dapat menjalankan kode Anda di mesin virtual (Mode Pengguna Linux, VServer, OpenVZ, VirtualBox, VMWare, KVM, ...) yang Anda sediakan hanya dengan antarmuka jaringan khusus host (yaitu tidak ada perutean dari VM ke mana pun kecuali mesin host ).

Jika Anda menjalankan aplikasi sebagai pengguna khusus appuser , Anda dapat membatasi akses jaringan pengguna tersebut. Pastikan Anda memiliki iptables (Ubuntu:iptables Instal iptables http://bit.ly/software-small) dan iproute2 (ip perintah) (Ubuntu:iproute Instal iproute http://bit.ly/software-small, iproute-doc Instal iproute-doc http://bit.ly/software-small) diinstal. Kemudian Anda dapat menggunakan iptables untuk menandai lalu lintas keluar dari proses yang berjalan sebagai appuser , dan ip rule dan ip route untuk menyiapkan tabel perutean alternatif untuk pengguna tersebut.

ip rule add fwmark 1 table 1
ip route add 127.0.0.0/0 table 1 dev lo
iptables -t mangle -A OUTPUT -m owner --uid-owner appuser -j MARK --set-mark 1

(Catatan:belum teruji. Lihat juga lebih banyak contoh perusakan paket IP Linux.)


Linux
  1. Layanan OS Linux 'iptables'

  2. Bagaimana cara mengakses (jika mungkin) ruang kernel dari ruang pengguna?

  3. Apakah mungkin mem-boot Linux dari disk GPT pada sistem BIOS?

  1. Linux – Apakah Mungkin Untuk Mengakses Framebuffer Untuk Menempatkan Piksel Di Layar Dari Baris Perintah?

  2. Buat USB Bootable Dari Linux:Semudah Mungkin!

  3. Di Linux, kapan uptime mulai dihitung?

  1. Bagaimana Mengakses Folder Bersama Windows dari Linux?

  2. Cara mengakses Team Foundation Server (TFS) dari Linux

  3. Matikan mesin Windows dari terminal linux