내 환경: *운영 체제:* 에스트롬리눅스
도메인 명 시스템:제본
현재 상황:
- 사용자가 내 개인 오프라인 네트워크에 연결합니다.
- 사용자가 google.com에 액세스하려고 하는데 내 상자가 개인 네트워크에 있으므로 연결을 사용할 수 없다는 오류가 발생합니다.
필수 시나리오의 예:
- 사용자가 내 개인 오프라인 네트워크에 연결합니다.
- 사용자가 브라우저에서 google.com이나 다른 외부 호스트에 액세스하려고 하면 내 스플래시 페이지로 리디렉션됩니다.
내 컴퓨터의 인터넷 연결이 끊기더라도 최종 사용자는 계속해서 google.com이나 다른 외부 웹사이트를 방문하여 내 실행/포털 페이지로 리디렉션될 수 있다는 아이디어입니다.
이를 달성하는 방법에 대한 아이디어나 피드백을 주시면 감사하겠습니다.
답변1
방법 1#IPTABLES
xxxxx
+----------+ +----------+ xxxxxxxxx xxx xxxxx
| | | | xx xx
| | | Linux | xxx xx x
| | | Box | x x
| Clinet | ========> | As | ====> x WebServer portal page.
| | | GateWay | xx xxx
| | | | x x
| | | | xx xxx x xxxxx
+----------+ +----------+ xxxxxxxxxx xxx
클라이언트 컴퓨터에서 게이트웨이를 사용하고 Linux 상자에 다음 규칙을 추가하고 Ipforwording을 활성화합니다.
/sbin/iptables -t nat -A PREROUTING -s [source network/mask] -p tcp --dport 80 -j DNAT --to-destination [your webserver]
IP_전달 활성화:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
그런 다음 신청하세요
sysctl -p
드라브가 말했듯이
포트 443을 리디렉션할 수 있지만 이렇게 하면 브라우저가 유효하지 않은 인증서에 대한 경고를 표시하게 된다는 점에 유의하세요(이는 무엇을 하든 발생합니다).
방법 2#DNS
명명된.conf에서:
zone "." IN {
type master;
file "named.root";
};
"named.root"에서:
$ORIGIN .
$TTL 1D
@ IN SOA @ none. ( 0 1D 1H 1W 3H );
. IN NS @
@ IN A 10.0.0.1
* IN A 10.0.0.1
IP 주소 10.0.0.1을 웹 서버로 바꾸십시오.
위의 방법은 테스트를 거쳤으며 효과적입니다.