如何在托pipe容器中创buildSSH隧道,其中的主机可以访问socks代理?
我想使用docker容器来创buildSSH隧道,因为在Mac上有编译混淆OpenSSH的问题,因为它在Ubuntu上很简单。
这是我正在使用的docker文件
FROM rastasheep/ubuntu-sshd:16.04 RUN apt-get update RUN apt-get install -y software-properties-common python-software-properties RUN add-apt-repository ppa:zinglau/obfuscated-openssh RUN apt-get update RUN apt-get install -y openssh-server RUN apt-get update ADD ./Key.pem /var/www/ CMD ["ping", "google.com","-c 3"] ENTRYPOINT ssh -z -Z obfuscatedkey -4 -i "/var/www/Key.pem" -N -p 53 -D 6969 ubuntu@REMOTE_SERVER_ON_AWS -v EXPOSE 6969
我得到的问题是它似乎连接,但我不能连接到我的主机上的SOCKS代理使用127.0.0.1:6969作为代理。
我已经尝试运行它作为docker run -i -t NAME -p 127.0.0.1:6969:6969
和docker run -i -t NAME -P
但是ssh隧道冻结了这一步
debug1: Authentication succeeded (publickey). Authenticated to REMOTE_SERVER_ON_AWS ([IP_ADDRESS]:53). debug1: Local connections to LOCALHOST:6969 forwarded to remote address socks:0 debug1: Local forwarding listening on 127.0.0.1 port 6969. debug1: channel 0: new [port listener] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: pledge: network debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
任何帮助表示赞赏谢谢!
问题是你正在容器中创build一个localhost隧道。 要使用该隧道,您需要位于泊坞窗容器内。
在docker run命令中使用-p 127.0.0.1:6969:6969
时。 它说从容器的端口6969
将收到您的机器的所有stream量。 但容器将从分配给docker集装箱的IP接收相同的信息。 这将是像172.2.0.2
。
你在容器里的ssh隧道172.2.0.2
127.0.0.1
而不是172.2.0.2
,所以它不会收到这样的stream量。 所以改变你的Dockefile线
ENTRYPOINT ssh -z -Z obfuscatedkey -4 -i "/var/www/Key.pem" -N -p 53 -D 6969 ubuntu@REMOTE_SERVER_ON_AWS -v
至
ENTRYPOINT ssh -z -Z obfuscatedkey -4 -i "/var/www/Key.pem" -N -p 53 -D 0.0.0.0:6969 ubuntu@REMOTE_SERVER_ON_AWS -v
如果-D
选项不能使用-L
选项