iPhone에서 socks 프록시를 사용하여 개인 서버에 액세스하고 싶습니다.

3871 단어 프록시아이폰
뭔가 여러가지 했습니다만, 이것은 일단 iPhone에서는 socks 프록시 설정할 수 없다고 생각했기 때문이었습니다.

어쩐지, 보통으로 할 수 있네요. 그래서 메모.

대상 서버에 SSH


ssh -D 1080 -g ec2-user@target-server
-g가 포인트. 이렇게하면 다른 컴퓨터 (이번에는 iPhone)에서 SSH를 실행하는 컴퓨터의 포트 포워드를 사용할 수 있습니다.

설정 파일을 작성해, HTTP 액세스가 가능한 장소에 배치



socks.pac
function FindProxyForURL(url, host) {
    return "SOCKS 192.168.xx.xx:1080";
}

dropbox에도 넣어두면 좋을 것입니다.

iPhone 프록시 설정





HTTP PROXY 설정을 AUTO로 설정하고 방금 dropbox에 올린 pac 파일을 지정합니다.

이상



이제 target-server 내에서 실행중인 서버에 액세스하거나 target-server를 통해 다른 서버에 액세스 할 수 있습니다.

일단 확인
uraura@rosemary$ echo "via socks proxy">index.html

uraura@rosemary$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

프록시 설정을 변경한 iPhone에서 localhost:8000에 액세스
127.0.0.1 - - [14/Dec/2015 07:38:36] "GET / HTTP/1.1" 200 -

접근할 수 있었다!!

주) iPhone의 Chrome에서라고 했지만, Safari로부터라고channel 9: open failed: administratively prohibited: open failed라고 불려 열 수 없었습니다. . . 왜일까

2015-12-14
-vvvv와 함께 SSH하여 로그를 보았을 때,

Safari에서 액세스한 경우
debug2: channel 15: dynamic request: socks5 host www.localhost.com port 8000 command 1
channel 15: open failed: administratively prohibited: open failed
debug2: channel 15: zombie
debug2: channel 15: garbage collecting
debug1: channel 15: free: direct-tcpip: listening port 1080 for www.localhost.com port 8000, connect from 192.168.xx.26 port 59393 to 192.168.xx.33 port 1080, nchannels 16
...

Chrome에서 액세스한 경우
debug2: channel 6: dynamic request: socks5 host localhost port 8000 command 1
debug2: channel 6: open confirm rwindow 2097152 rmax 32768
127.0.0.1 - - [14/Dec/2015 08:59:22] "GET / HTTP/1.1" 200 -
debug2: channel 6: rcvd eof
debug2: channel 6: output open -> drain
debug2: channel 6: obuf empty
debug2: channel 6: close_write
debug2: channel 6: output drain -> closed
debug2: channel 6: read<=0 rfd 14 len 0
debug2: channel 6: read failed
debug2: channel 6: close_read
debug2: channel 6: input open -> drain
debug2: channel 6: ibuf empty
debug2: channel 6: send eof
debug2: channel 6: input drain -> closed
debug2: channel 6: send close
debug3: channel 6: will not send data after close
debug2: channel 6: rcvd close
debug3: channel 6: will not send data after close
debug2: channel 6: is dead
debug2: channel 6: garbage collecting
debug1: channel 6: free: direct-tcpip: listening port 1080 for localhost port 8000, connect from 192.168.xx.26 port 59402 to 192.168.xx.33 port 1080, nchannels 7

왜 Safari의 경우 www.localhost.com에 액세스하겠습니다. . . ?
http://localhost.localdomain:8000와 딱딱하게 지정하면 Safari에서도 갈 수있었습니다.

좋은 웹페이지 즐겨찾기