표적:
홈 네트워크 --> wlan0 --> VPN --> wlan1 --> 핫스팟
Raspbian 제시와 픽셀:
내장된 Wi-Fi 어댑터를 사용하여 홈 네트워크에 연결하고, 외부 Wi-Fi 어댑터를 호스트로 사용합니다.이더넷 없음. 나는 일주일 넘게 일주일 넘게 Hostapd와 여러 dhcp 구성을 사용하여 Hostpot을 통해 VPN을 사용하도록 rpi 3 모델 b를 설정하려고 노력했지만 성공하지 못했습니다.
지혜로운 말들: 초보자나 전문가가 아닙니다.
많은 온라인 기사에서 단계를 차용했지만 새로운 rpi 3b와 함께 사용할 업데이트 버전이 없습니다. 참고용으로 여기에 제공하겠습니다.
무슨 일이 일어나는지: wlan0은 Pi의 홈 네트워크 VPN에 연결되고, 고정 IP는 wlan1 Hostapd에 할당되고, isc-dhcp 드라이버는 wlan1에 대한 IP 주소를 설치하고, 클라이언트에 서브넷이 할당됩니다.
무엇이 아닌가?: 클라이언트(휴대폰)에서 VPN이 생성한 핫스팟
내 용의자:iptables 또는 네트워크 인터페이스 또는 dhcpcd.conf(etc/dhcpcd.conf에 위치)
이상한 장면: "# iface default inet dhcp"가 인터페이스에 추가되면 isc-dhcp가 실패합니다! 해싱 후에도 이 문제가 발생했습니다. 삭제한 후에는 모든 것이 잘 작동합니다!
사용된 구성:
DHCPD:/etc/dhcp/dhcpd.conf:
subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
ISC-DHCP 서버:/etc/default/isc-dhcp-서버:
INTERFACES="wlan1"
주인:/etc/hostapd/hostapd.conf: (여기에서는 사용자 정의 버전이 사용됨)
interface=wlan1
driver=rtl871xdrv
ssid=Net
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Test123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
/etc/default/hostapd:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
네트워크 인터페이스:/etc/네트워크/인터페이스:
auto lo
iface lo inet loopback
iface eth0 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#allow-hotplug wlan1
iface wlan1 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
up iptables-restore < /etc/iptables.nat.vpn.secure
DHCPCD:/etc/dhcpcd.conf:
interface wlan1
static ip_address=192.168.42.1/24
static routers=192.168.42.1
static domain_name_servers=192.168.42.1
네트워크 주소 변환:/etc/sysctl.conf:
net.ipv4.ip_forward=1
sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
VPN:
iptables -A INPUT -i tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i tun0 -j DROP
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sh -c "iptables-save > /etc/iptables.nat.vpn.secure"
효과가 없는 규칙:
iptables -A FORWARD -i tun0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan1 -o tun0 -j ACCEPT
결과:
VPN은 Pi에서 실행됩니다. 핫스팟이 작동합니다. 클라이언트 측에는 인터넷이 없습니다. 클라이언트(기본적으로 전화)에는 올바른 IP 및 서브넷 마스크가 할당됩니다. 인터넷을 검색할 수 없습니다.
이 실패의 원인?
답변1
MASQUERADE
RPI의 물리적 인터페이스에 규칙을 적용하면 안 되나요 tun0
? VPN 클라이언트의 트래픽이 RPI의 IP로 NAT되어 집의 라우터가 RPI를 통해 이러한 트래픽에 응답할 수 있기를 원합니다.
iptables --table nat --append POSTROUTING --src [network for your tun0] --out-interface wlan1 --jump MASQUERADE