네트워크 액세스를 차단하는 LD_PRELOAD 또는 이와 유사한 방법

네트워크 액세스를 차단하는 LD_PRELOAD 또는 이와 유사한 방법

네트워크 연결이 끊긴 프로그램을 시작하고 싶습니다. (시작한 직후에 많은 양의 데이터를 다운로드하려고 하기 때문에 안정화된 직후에 설정을 변경하면 이를 방지할 수 있습니다.) 하지만, 난 정말 그러고 싶지 않아네트워크를 마비시키다이 쇼를 위해.

프로그램에 네트워크가 다운되었다는 인상을 주는 LD_PRELOAD 또는 이와 유사한 것이 있습니까? 가상 머신을 만들지 않는 것이 좋습니다.

답변1

Linux에서는 네트워크 네임스페이스를 사용해 보세요. 예를 들면 다음과 같습니다.

sudo ip netns add namespace-name
sudo ip netns exec namespace-name executable

이렇게 하면 프로그램이 네트워크에 액세스하지 못하게 됩니다.

답변2

최신 Linux를 사용하고 있으며 슈퍼유저 액세스 권한이 있는 경우 @Ulrich의 네트워크 네임스페이스 솔루션이 완벽한 솔루션입니다. 그렇지 않은 경우 또 다른 옵션은 dante또는 같은 SOCKS 래퍼를 사용하는 것입니다 socksify( tsocksSOCKS와 함께 사용된다는 점에 유의하세요 LD_PRELOAD).

with 와 마찬가지로 with 인스턴스를 tsocks생성합니다 tsocks.conf:

path {
    reaches = 0/0
    server = 127.0.0.1
    server_port = -1
    server_type = 5
}
fallback = no

다음을 통해 애플리케이션을 호출합니다.

TSOCKS_CONF_FILE=/path/to/that/tsocks.conf tsocks your-application

이는 TCP 연결 및 IPv4에만 적용됩니다. 반면에 이는 연결이 허용되는 IP 주소를 선택적으로 지정할 수 있음을 의미합니다.

관련 정보