Mulai / Hentikan Berbagi Internet melalui Terminal di Yosemite tanpa AppleScript

6

Oke, saya melihat pertanyaan ini telah ditanyakan beberapa kali sebelumnya (di sini , di sini , di sini dan di sini ), tetapi tidak ada yang benar-benar menjawab pertanyaan untuk saya.

Saya tidak ingin menggunakan saran AppleScript yang disediakan untuk mengaktifkan / menonaktifkan Berbagi Internet sejak pembaruan Sistem Preferensi GUI di masa depan akan merusak AppleScript, seperti yang terjadi pada posting yang ditautkan di atas, dan solusinya tampak agak canggung, menjadi jujur.

Di Yosemite, sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plisttidak lagi berfungsi karena tidak ada lagi yang .plistdipanggil InternetSharing.

Saya mencoba sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat NAT -dict-add Enabled -int 1 yang saya lihat di tempat lain, tetapi itu hanya mengaktifkan kotak centang sebenarnya di System Preferences dan tidak benar-benar mengaktifkan IS.

Jadi pada akhirnya, pertanyaan saya adalah ini. Proses apa yang harus saya panggil dari baris perintah untuk mengaktifkan Berbagi Internet, atau sebaliknya, proses apa yang harus saya bunuh untuk menonaktifkan Berbagi Internet?

Stuart H
sumber
Sudahkah Anda mencoba menurunkan antarmuka ethernet menggunakan ifconfig en0 ke bawah lalu mencadangkan dengan ifconfig en0 ke atas . Contoh ini menggunakan en0, tetapi nama antarmuka Anda akan bervariasi tergantung pada yang digunakan. Itu mungkin memaksa perubahan.
IconDaemon
Yup, coba itu. Meskipun saya hanya mencoba me-restart wi-fi (yang saya bagikan) dan bukan ethernet (yang saya bagikan dari mana), meskipun saya ragu antarmuka mana yang saya restart akan mempengaruhi hasilnya.
Stuart H
Saya akan mencoba antarmuka ethernet juga.
IconDaemon
Ada /System/Library/LaunchDaemons/com.apple.NetworkSharing.plist Sudahkah Anda mencoba mematikan / mematikan ini?
IconDaemon
Anda, tuan, adalah makhluk yang luar biasa. Kombinasi menjatuhkan dua antarmuka dan beralih daemon antara mengurutkan trik. Saya akan menyerahkan kepada Anda untuk mengirim jawaban sehingga saya dapat memberi Anda perwakilan. :)
Stuart H

Jawaban:

3

Saya menemukan cara yang tampaknya sangat mudah untuk mengaktifkan / menonaktifkan Berbagi Internet beberapa hari yang lalu. Hanya ada sedikit pekerjaan persiapan yang harus dilakukan terlebih dahulu.

  1. Buka System Preferences> Network
  2. Sorot antarmuka yang Anda inginkan untuk membagikan koneksi Anda DARI dan klik roda gigi di bawah daftar antarmuka
  3. Pilih 'Layanan Duplikat ...'
  4. Beri nama layanan yang digandakan dan simpanlah
  5. Setel layanan ke 'DHCP dengan alamat manual' (karena beberapa server DHCP tidak akan memberikan alamat tambahan ke MAC) dan memasukkan IP yang valid

Itu pekerjaan persiapan yang dilakukan. Sekarang Anda hanya perlu mengubah pengaturan IS Anda untuk dibagikan dari layanan baru, bukan yang sudah ada. Kemudian, Anda dapat menggunakan networksetup -setnetworkserviceenabled <networkservice> <on off>untuk mengaktifkan atau menonaktifkan layanan jaringan yang baru saja Anda buat. Melakukannya menonaktifkan IS karena tidak ada layanan untuk menerima akses internet dari, dan Anda masih mempertahankan akses pada mesin Anda karena masih ada antarmuka aktif yang terhubung ke jaringan Anda!

Stuart H
sumber
1
Tidak dapat cukup berterima kasih atas jawaban ini, sudah mencoba menemukan cara yang ditulis untuk melakukan ini sejak lama; sekarang akhirnya saya bisa mematikannya di malam hari sehingga komputer saya bisa tidur, dan nyalakan lagi ketika saya membangunkannya.
Haravikk
1

Pertama, jatuhkan semua antarmuka internet aktif menggunakan perintah terminal:

ifconfig [interface*] down

Kemudian daemon peluncuran ditemukan di sini:

/System/Library/LaunchDaemons/com.apple.NetworkSharing.plist

perlu diaktifkan dengan launchctlperintah.

kemudian buka antarmuka dengan perintah

ifconfig [interface*] up

* Catatan: en0 adalah antarmuka ethernet kabel, sedangkan en1 adalah antarmuka wifi. Menjalankan ifconfigperintah dengan sendirinya daftar semua antarmuka, aktif atau tidak aktif.

IconDaemon
sumber
Mungkin saya berbicara terlalu cepat. Meskipun ini berfungsi dengan baik untuk menonaktifkan Berbagi Internet, sepertinya tidak berfungsi terlalu baik untuk mengaktifkannya kembali. :(
Stuart H
Sudahkah Anda mencoba menghidupkan daemon setelah Anda membuka antarmuka?
IconDaemon
Saya sudah mencoba mengaktifkan daemon kemudian memunculkan antarmuka, sama dengan penundaan untuk memungkinkan inisialisasi, beralih setelah memunculkan antarmuka, mengubah antarmuka berbagi setelah mengaktifkan daemon, dan bahkan menggunakan startopsi launchctl, semua tidak berhasil .
Stuart H
0

Saya melakukan yang berikut:

  • Gandakan lokasi "Otomatis". Saya memberi nama "Dibagi" yang digandakan.
  • Pada lokasi "Shared", ganti nama antarmuka Ethernet menjadi "Shared Ethernet".
  • Konfigurasikan internet bersama untuk menggunakan antarmuka "Shared Ethernet".

Dengan pengaturan ini, ketika beralih dari lokasi "Otomatis" ke lokasi "Dibagi", antarmuka "Shared Ethernet" menjadi tersedia / tidak tersedia dan oleh karena itu Berbagi Internet dapat diaktifkan / dinonaktifkan.

Dari sini ke menggunakan baris perintah, hanya masalah menelepon

networksetup -switchtolocation "Shared"

atau

networksetup -switchtolocation "Automatic"

Filipe Figueiredo
sumber