首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证shadowsocks服务器是否已准备就绪?

如何验证shadowsocks服务器是否已准备就绪?
EN

Stack Overflow用户
提问于 2018-09-26 11:29:19
回答 3查看 2.6K关注 0票数 0

我设置了shadowsocks服务器并启动它。我使用下面的代码直接创建一个套接字来连接到服务器:

代码语言:javascript
复制
    Socket socket = new Socket();
    SocketAddress address = new InetSocketAddress("my.ss_server.ip",ss_server_port);
    socket.setSoTimeout(5 *1000);
    socket.connect(address);

    OutputStream os = socket.getOutputStream();
    InputStream is = socket.getInputStream();

    //byte[] VER = {0x05, 0x01, 0x00},socks5 protocol
    os.write(VER);
    os.flush();

    byte[] b = new byte[128];
    int a = is.read(b);

    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String result = bytesToHexString(b, 0, a);
    System.out.println(result);

但不幸的是,阅读超时finally.Can我直接连接到Shadowsocks服务器通过套接字?有没有人知道如何用java创建一个简单的程序来验证Shadowsocks服务器的连接?

非常感谢。

EN

回答 3

Stack Overflow用户

发布于 2021-03-20 17:09:13

假设您询问的是“验证shadowsocks服务器是否为客户端做好了准备”。因此,我们不会讨论服务器端的事情。

以下是从客户端验证服务器端口的两种方法:

  1. 使用命令行工具测试服务器上打开的端口:nc-w 5: timeout in 5 seconds -z -w 5 A successful测试输出如下所示:

连接到端口 tcp/*成功!

否则,它将不输出任何内容,并且nc将退出并返回代码1。

请注意:此方法仅在端口打开时进行测试,它不会确保端口用于Shadowsock。

使用Shadowsocks管理器API的

这需要在服务器端启用Shadowsocks manager API,它只支持libev和python版本。

使用以下命令从客户端获取活动的Shadowsocks端口列表。

请注意:ss_manager_ip可能与ss_server_ip不同,它们可能侦听不同的IP地址,例如专用IP地址和公共IP地址,具体取决于您的配置。而且ss_manager_port绝对不同于ss_user_port

与方法1不同,此方法会告诉您服务器上正在侦听哪些端口,但它并不确保这些端口可以从客户端访问。

nc -u ping

如果nc不可用,则使用bash:

exec 3<>/dev/udp// echo ping >&3 cat <&3

或者使用Python代码(2.7),您可以轻松地将其移植到Java:

导入套接字s= socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # UDP s.connect((,)) s.send(b‘’ping‘)’ping

票数 1
EN

Stack Overflow用户

发布于 2018-12-05 01:39:05

I ping windows CMD中的服务器IP

代码语言:javascript
复制
 Open the Windows Run box by pressing the Windows key and the letter R.

    Type CMD and press enter to open the command prompt.

    Type "ping " followed by the IP address to ping.

    Press Control + "C" key at the same time to stop the ping and see the summary statistics.

或者如果你像我一样使用Shadowsocks-libev

代码语言:javascript
复制
systemctl status shadowsocks-libev.service
票数 0
EN

Stack Overflow用户

发布于 2021-11-16 03:57:26

我创建了一个docker镜像,并使用它在客户端检查服务器的可用性。

大意:使用ss-tunnel将本地端口映射到www.google.com:80,然后向本地端口发送HTTP请求,如果您的ss-server可用,您将获得有效的HTTP响应。

https://github.com/oylbin/shadowsocks_availability_monitor

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52509512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档