docker-easyconnect
docker-easyconnect copied to clipboard
easyconnect登录成功但浏览器无法访问
docker-compose.yaml
services:
easyconnect:
image: hagb/docker-easyconnect:cli
container_name: easyconnect
devices:
- /dev/net/tun
cap_add:
- NET_ADMIN
volumes:
- $HOME/.easyconn:/root/.easyconn
ports:
- "127.0.0.1:1080:1080"
- "127.0.0.1:8888:8888"
environment:
- EC_VER=7.6.7
- EXIT=1
- CLI_OPTS=-d xxx.edu.cn -u xxx -p xxx
现象
ssh 可以通过 1080 端口的 socks 正常代理登录,但浏览器中设置代理时显示 ERR_SOCKS_CONNECTION_FAILED,切换成 http 代理也无法访问。容器启动日志如下:
Error: ipv4: FIB table does not exist.
Flush terminated
Error: Missing goto target for action goto.
/usr/local/bin/start.sh: line 152: tigervncpasswd: command not found
WARNING: logging deactivated (can't log to stdout when daemonized)
/usr/local/bin/start.sh: line 158: tigervncserver: command not found
/usr/local/bin/start.sh: line 170: xclip: command not found
user "xxx" auto login failed
user "xxx" login successfully!
busybox wget baidu.com
wget: bad address 'baidu.com'
root@bb64b6b723ad:/# cat /etc/resolv.conf
;sangfor-dns-client
nameserver 127.0.0.1
root@bb64b6b723ad:/# busybox vi /etc/resolv.conf
root@bb64b6b723ad:/# cat /etc/resolv.conf
;sangfor-dns-client
nameserver 223.5.5.5
nameserver 127.0.0.1
root@bb64b6b723ad:/# busybox wget baidu.com
wget: bad address 'baidu.com'
似乎是dns的问题?但我尝试修改后仍然无效
找到一个可以曲线救国的方案。既然ssh可以登录,至少说明代理是正常的。所以通过将要访问到页面域名在本地解析出来,然后直接在浏览器里访问ip地址即可。
借助 Clash 解决了,在Clash的配置文件中添加对应域名的 hosts 记录即可:
hosts:
xxx.edu.cn: 1.2.3.4 # 更换为对应的 IP 地址
用hosts 这样最完美
docker-compose.yaml 里加上 extra_hosts 是个不错的想法.另外,可能客户端自己的 hosts 里也要加?不太确定.我之前是只在客户端自己的 hosts 里加了,因为这个时候 DNS 解析应该是他做的,到了 easyconnect 容器里应该只有解析后的 IP 了才对吧.的确不行.最后两个都加上了.凑合着用吧,先不修改了.