У мене є програма, яку я хотів би протестувати в автономному режимі, не знімаючи фактичної мережі. Ця програма все одно потребуватиме підключення до локальних сокетів, включаючи unix домені sox і loopback. Він також повинен слухати в режимі зворотного зв'язку та бути видимим для інших додатків.
Але спроби підключитися до віддаленої машини повинні провалитися.
Я хотів би мати утиліту, яка працює як strace
/ unshare
/ sudo
і просто запускає команду з Інтернетом (та LAN) таємно, а все інше все ще працює:
$ offline my-program-to-test
На це питання є підказки на відповідь: Блокувати доступ до мережі до процесу?
Тут є кілька пропозицій, наприклад, запустити, як інший користувач, потім маніпулювати iptables, або unshare -n
. Але в обох випадках я не знаю бажаності отримати сокети домену Unix та петлю зворотного зв’язку для спільної роботи з основною системою - відповіді на це питання лише підказують мені, як скасувати доступ до всієї мережі.
Програма, яку я тестую, все ще потребує підключення до мого X-сервера та dbus і навіть мати можливість слухати в режимі зворотного зв'язку для підключень інших програм у системі.
В ідеалі я хотів би уникати створення хротонів або користувачів або віртуальних машин тощо, оскільки це стає таким же дратівливим, як і відключення мережного кабелю. тобто сенс питання полягає в тому, як я можу зробити це так просто, як sudo
.
Я б хотів, щоб процес запускався нормально на 100%, за винятком того, що мережеві дзвінки із зазначенням не місцевої адреси не зможуть. Ідеально зберігати той самий uid, той же hededir, той самий pwd, те саме, крім ... офлайн.
Я використовую Fedora 18, тому невідповідні відповіді на Linux просто чудові (очікується, навіть).
Я навіть радий вирішити це, написавши програму C, якщо це стосується, тож відповіді, які стосуються написання С, є нормальними. Я просто не знаю, які систематичні виклики потрібно було б зробити програмі C, щоб відкликати доступ до зовнішньої мережі, зберігаючи локальну мережу.
Будь-який розробник, який намагається підтримувати "офлайн режим", мабуть, оцінить цю утиліту!