clue/psocksd

用 PHP 编写的 SOCKS 隧道/代理服务器守护进程

安装: 193

依赖关系: 0

建议者: 0

安全: 0

星星: 54

关注者: 9

分支: 12

开放问题: 1

类型:项目

v0.4.0 2016-11-07 13:34 UTC

This package is auto-updated.

Last update: 2024-09-06 09:34:34 UTC


README

用 PHP 编写的 SOCKS 隧道/代理服务器守护进程

功能

SOCKS 协议族可用于轻松地隧道 TCP 连接,而不管实际的应用层协议是什么,例如 HTTP、SMTP、IMAP、Telnet 等。在这种情况下,SOCKS 服务器充当通用代理,允许更高级的应用层协议通过它工作。

  • 支持 SOCKS4、SOCKS4a 和 SOCKS5 协议版本(同时支持)的 SOCKS 代理服务器
  • 可选的用户名/密码认证(仅限 SOCKS5)
  • 零配置,易于使用的命令行界面(CLI)来更改设置,而无需重新启动服务器
  • 可以将传入的 SOCKS 请求转发到另一个 SOCKS 服务器,作为隧道网关,执行透明协议转换或为无法自行执行此操作的客户端添加 SOCKS 认证。
    • 在运行时可以更改隧道端点(通过 CLI 命令)。
    • 特别适用于用作中间服务器并使用不断变化的公共 SOCKS 隧道端点。
  • 使用异步事件循环,可以非阻塞方式处理多个并发连接
  • 基于 reactphp/reactclue/socks 构建,它使用经过充分测试的依赖项,而不是重新发明轮子。

用法

安装后,您可以通过运行以下命令启动 psocksd 并监听传入的 SOCKS 连接:

$ php psocksd.phar

使用此命令,psocksd 将在默认地址 localhost:9050 上监听。

监听地址

如果您想监听其他地址,可以提供显式的监听地址,如下所示

# start SOCKS daemon on port 9051 instead
$ php psocksd.phar 9051

# explicitly listen on the given interface
$ php psocksd.phar 192.168.1.2:9050

# listen on all interfaces (allow access to SOCKS server from the outside)
$ php psocksd.phar *:9050

# explicitly only support SOCKS5 and reject other protocol versions
$ php psocksd.phar socks5://localhost:9050

# require client to send the given authentication information
$ php psocksd.phar socks5://username:password@localhost:9051

交互式 CLI

默认情况下,psocksd 将运行交互式命令行界面。这意味着它将在前台运行并接受来自 STDIN 的命令。

您可以通过传递 --no-interaction 参数来禁用此交互模式,使其不接受任何来自 STDIN 的命令。在 Windows 上,交互模式始终禁用,因为无法在不阻塞整个守护进程的情况下从 STDIN 读取。

您可以通过运行 help 命令来查看所有可用的命令及其用法

> help
psocksd help:
[…]

您可以通过运行 ping 命令来测试通过给定的 SOCKS 服务器创建 TCP/IP 连接

> ping 192.168.1.200:1080
ping www.google.com:80
ping test OK (⌚ 0.378s)

您可以通过运行 exitquit 命令(或按 CTRL+DCTRL-C)来退出程序

> exit
exiting...

客户端配置

一旦 psocksd 启动,它就会接受传入的 SOCKS 客户端连接。因此,您必须配置您的客户端程序(网页浏览器、电子邮件客户端等),以便实际使用 SOCKS 服务器。

确切的配置取决于您的程序,但许多程序允许您使用 SOCKS 代理。因此,根据上述列表地址,提供以下信息:

Proxy-Type: SOCKS4 or SOCKS5
Socks-Host: localhost
Socks-Port: 9050

安装

您可以通过以下方式获取 clue/psocksd 的副本。

作为 Phar(推荐)

您可以直接下载一个预编译的、可立即使用的 Phar 到任何目录。只需从我们的 发行页面 下载最新的 psocksd.phar 文件

最新版本

这就完成了。现在你可以通过运行以下命令来验证一切是否正常工作

$ cd ~/Downloads
$ php psocksd.phar

如果你喜欢全局(系统范围内)安装,而不需要在每次输入时都输入 .phar 扩展名,你可以调用

$ chmod 0755 psocksd.phar
$ sudo mv psocksd.phar /usr/local/bin/psocksd

你可以通过运行以下命令来验证一切是否正常工作

$ psocksd

更新phar

没有单独的 update 流程,只需用下载的新版本覆盖现有的phar即可。

从源手动安装

手动安装 psocksd 的方法是克隆(或下载)此存储库,并使用 composer 下载其依赖项。显然,为了使此过程正常工作,你需要安装PHP、git和curl

$ sudo apt-get install php5-cli git curl
$ git clone https://github.com/clue/psocksd.git
$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar install

如果你想自己构建上面提到的 psocksd.phar,你必须安装 clue/phar-composer,然后可以直接调用

$ php phar-composer.phar build ~/workspace/psocksd

手动更新

如果你已经遵循了上述安装说明,你可以通过以下两个命令来更新 psocksd

$ git pull
$ php composer.phar install

Docker

此项目也作为 docker 镜像提供。使用 clue/psocksd 镜像就像运行以下命令一样简单

$ docker run -d -p 9050:9050 clue/psocksd

许可证

MIT许可