
PS3에서 일본 노래방 게임을 플레이하려고 하는데 대기 시간이 너무 길고 노래를 다운로드하는 데 시간이 오래 걸립니다. 제가 받은 추천 중 하나는 OpenSSH를 통해 일본에 있는 친구의 서버에 로그인하여 노트북을 SOCKS 프록시로 전환하는 것이었습니다.
[서버]----(ssh 터널)---[wlan0 < 노트북 > eth0]---[PS3]
그래서 그것이 내가 한 일입니다:
ssh -ND 4711 [email protected]
그 순간 나는 Firefox(SOCKS 프록시 설정 사용)를 사용하여 노트북에서 google.com에 접속하려고 시도했는데 google.co.jp로 리디렉션되었습니다. 엄청난.
그런 다음 이더넷을 통해 PS3를 노트북에 연결하고 싶었습니다.
먼저 다음을 사용하여 eth0에 고정 IP를 할당했습니다.
ip link set dev eth0 up
ip addr add 139.96.30.100/24 dev eth0
그런 다음 랩톱에서 DHCP 서버를 시작하여 다음을 사용하여 PS3에 IP를 제공했습니다.
systemctl start dhcp4.service
마지막으로 iptables 마법을 사용하여 NAT를 활성화했습니다.
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
"네트워크 설정"으로 가서 PS3의 연결을 테스트했는데 제대로 작동하는 것 같았습니다. 웹 브라우저를 시작했는데 google.com이 google.fr로 리디렉션되었습니다. 정말 어리석군요. 연결을 올바른 포트로 전달하는 것을 잊었습니다.
작동하지 않는 iptables를 통한 많은 연결 전달 후에 나는 투명 프록시인 redsocks를 사용해 보기로 결정했습니다.http://darkk.net.ru/redsocks/
설치 후 필요에 맞게 /etc/redsocks.conf를 수정했습니다.
redsocks {
local_ip=0.0.0.0; // documentation says: "use 0.0.0.0 if you want to listen on every interface"
local_port=31388;
ip=127.0.0.1;
port=4711;
}
나머지는 그대로 놔두고https://github.com/darkk/redsocks/blob/master/redsocks.conf.example
저는 설치한 패키지에 제공된 기본 redsocks.rules를 사용했습니다.
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:REDSOCKS - [0:0]
# Redirect all output through redsocks
-A OUTPUT -p tcp -j REDSOCKS
# Whitelist LANs and some other reserved addresses.
# https://en.wikipedia.org/wiki/Reserved_IP_addresses#Reserved_IPv4_addresses
-A REDSOCKS -d 0.0.0.0/8 -j RETURN
-A REDSOCKS -d 10.0.0.0/8 -j RETURN
-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 172.16.0.0/12 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Redirect everything else to redsocks port
-A REDSOCKS -p tcp -j REDIRECT --to-ports 31338
COMMIT
이를 통해 Firefox 및 luakit에서 SOCKS 프록시 설정 사용을 중단할 수 있었으며 google.com이 google.co.jp 테스트로 전환되면서 확인되었습니다.
NAT를 활성화해야 한다고 생각하여 다시 설정했습니다.
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
PS3는 분명히 시스템 전체 프록시를 우회했고 google.com은 google.fr로 리디렉션되었습니다. 그런 다음 가장 무도회 없이 redsocks.rules 파일을 그대로 사용했습니다. 나는 redsocks 서버가 분명히 모든 인터페이스를 수신하기 때문에 NAT가 필요하지 않을 것이라고 믿었습니다.
PS3에 다시 연결을 시도했는데 다음 메시지가 표시되었습니다(PS3가 DHCP 서버에서 IP를 획득했지만 인터넷 연결에 실패한 후).
"서버와 통신하는 동안 오류가 발생했습니다. DNS 오류입니다."
그것이 내가 지금 있는 곳이다. 나는 문서에 따라 이 작업을 수행하는 dnstc라는 DNS 서버를 사용하기 때문에 redsocks에 문제가 있을 수 있다고 생각합니다.
dnstc {
// fake and really dumb DNS server that returns "truncated answer" to
// every query via UDP, RFC-compliant resolver should repeat same query
// via TCP in this case.
local_ip = 127.0.0.1;
local_port = 5300;
}
내 추측으로는 내 PS3가 UDP를 통해 DNS 확인을 요청하고 dnstc가 항상 "잘린 답변"으로 응답한다는 것입니다. 내가 올바르게 이해했다면 TCP를 통해 요청을 다시 보내야 하는데 대신 DNS 오류가 발생하는 것 같군요??
어떻게 해야 하나요? 또는 더 정확하게는:
- 빨간 양말은 불필요한가요? 나는 단지 iptables에 대해 문맹인가?
- DNS 서버를 설치하고 DNS 요청을 전달해야 합니까? 그렇다면 어떻게?
긴 글을 읽어주셔서 감사합니다! 첫 번째 질문에 너무 짜증나지 않기를 바랍니다.
답변1
정적 DNS 서버를 사용하도록 PS3를 설정할 수 있습니다. 당신은 시도해 볼 수 있습니다오픈DNS208.67.222.222
및 서버가 있는 208.67.220.220
, 또는 시도해 보세요.Google의 공개 DNS 서버에 8.8.8.8
및 8.8.4.4
.