Пользовательский графический интерфейс без среды рабочего стола

Вот как это сделать, используя пространства имен ip (требуются привилегии суперпользователя, следующее должно выполняться от имени суперпользователя).

Создайте пространство имен для сервера:

ip netns add myserverns

Назначьте IP-адрес для обратной связи в пространстве имен и включите ее (источник: this {{1} } post ):

ip netns exec myserverns ifconfig lo 127.0.0.1 up

Запустить сервер в пространстве имен (где «serveruser» - это пользователь, который должен запускать сервер)

ip netns exec myserverns sudo -u serveruser server

Предположим, что сервер прослушивает порт 4242 . Теперь используйте socat , чтобы привязать петлю к пространству имен (обратите внимание на использование bind = 127.0.0.1 , которое является всей точкой) (источник: этот ответ ):

socat tcp-listen: 4242, bind = 127.0.0.1, fork, reuseaddr exec: 'ip netns exec myserverns socat STDIO tcp-connect \: 127.0.0.1 \: 4242 ', nofork

Это достигает моей намеченной цели: даже если сервер пытается привязаться к' * '(или к другим портам в целом), когда мы запускаем его таким образом, мы убедитесь, что его можно получить только на локальном компьютере с портом 4242 .

1
23.07.2015, 13:43
0 ответов

Теги

Похожие вопросы