iptables를 사용하면 홈 네트워크에 있을 때만 포트를 열 수 있나요?

iptables를 사용하면 홈 네트워크에 있을 때만 포트를 열 수 있나요?

내 노트북과 휴대폰 간에 콘텐츠를 동기화하는 서비스를 호스팅하고 싶습니다. 서버가 없기 때문에 랩톱에서 이러한 서비스를 호스팅하기로 결정했습니다. 내 휴대폰이 서비스에 연결될 수 있으려면 방화벽 iptables에서 해당 포트를 열어야 합니다. 그러나 공용 네트워크에 있을 때 잠재적으로 악의적인 트래픽에 서비스를 노출시키고 싶지 않습니다. 포트를 열고 싶지만 홈 네트워크에 있는 경우에만 가능합니다. iptables를 사용하면 이것이 가능합니까?

내 홈 네트워크에서는 집에 도착하자마자 휴대폰이 자동으로 Wi-Fi에 연결됩니다. 집에 있을 때 노트북은 항상 WiFi를 통해 연결되어 있으며, 도크에 꽂을 때만 이더넷을 통해 연결됩니다. 두 장치 모두 dhcp를 통해 라우터에서 IP 주소를 얻지만 기본적으로 라우터는 매번 동일한 IP를 제공합니다.

추신: NixOS에 대한 구체적인 답변은 감사하지만 차이점은 제가 직접 알아낼 수 있을 것 같습니다.

답변1

라우터에 핑을 보내고 arp 주소를 확인하는 것이 좋습니다.

시작 시 인터넷 연결이 설정될 가능성이 높 으므로 시작 시 매 시간마다 이와 같은 방법을 사용하십시오 .

ping -c 4 myrouterip > /dev/null 2>&1
arp | awk '$1 == "myroutermac" { print $1}' | sha512sum > /tmp/sum.txt
if cmp -s /tmp/sum.txt ref.txt
then
   ## at home 
fi

어디

  • 내 경로라우터의 상징적 이름입니다(*).

  • 내 라우터 맥arp홈 라우터에서 반환된 MAC 주소입니다.

  • ref.txtsha512sum(또는 적합하다고 판단되는 모든 항목)을 포함하는 arp| awk ..파일 입니다.

    (*) 라우터와 동일한 이름을 사용하여 어딘가로 가지 않는다고 가정그리고라우터는 동일한 Mac 주소를 사용합니다.

네가 알았 으면 좋겠어

  • 홈 라우터의 이름과 그것이 arp에 어떻게 나타나는지
  • 부팅 시 스크립트를 시작하는 방법(U&L을 선택하지 않은 경우)

관련 정보