3

我要完成的工作:让shadowsocks-node.js在 heroku 上运行。

shadowsocks-nodejs 是一个轻量级的隧道代理,可以帮助你通过防火墙。

我让它在同一台机器上的两个进程本地运行。
我的下一步是将其部署到 heroku 并在那里运行 server.js 并在我的机器上本地运行 local.js。但是,我似乎无法建立连接。

我的问题:服务器进程似乎拒绝了连接。


节点 local.js 输出:

calculating ciphers
server listening at port 1080
server connected
concurrent connections: 1
remote connection refused
server connected
concurrent connections: 1
remote connection refused
server connected

等等...

server.js 输出(通过heroku logs):

012-10-27T20:39:57+00:00 app[web.1]: server connected
2012-10-27T20:39:57+00:00 app[web.1]: concurrent connections: 1
2012-10-27T20:39:57+00:00 app[web.1]: server disconnected
2012-10-27T20:39:57+00:00 app[web.1]: concurrent connections: 0
2012-10-27T20:42:02+00:00 app[web.1]: server connected
2012-10-27T20:42:02+00:00 app[web.1]: concurrent connections: 1
2012-10-27T20:42:02+00:00 app[web.1]: server disconnected

等等。

Chrome 会返回错误:

Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.

(说得通)


这是shadowsocks使用的我的config.json:

{
    "server":["https://damp-woodland-7539.herokuapp.com"],
    "server_port":58954,
    "local_port":1080,
    "password":"barfoo!",
    "timeout":60
}

我编辑 server.js 来阅读(第 31 行):

//PORT = config.server_port;
PORT = process.env.PORT || 5000;

正如对heroku应用程序的建议。

这是我的 package.json 文件:

{
  "name": "shadowsocks-nodejs",
  "scripts": {
    "start": "server.js"
  },
  "version": "0.0.1",
  "engines": {
    "node": "0.8.x"
  },
  "dependencies": {
    "fs": "*",
    "net": "*"
  }
}

这可能只是一个简单的设置问题或一些不正确的地址。如果你们中的某个人可以帮助我,那就太好了。
非常感谢!

4

2 回答 2

2

shadowsocks-nodejs 与 Heroku 不兼容。它使用原始套接字,而 Heroku 仅提供 HTTP 访问。

您可以在 VPS 上部署 shadowsocks-nodejs 并完全自由地使用原始套接字,或者如果您想要免费代理,请使用shadowsocks-dotcloud 。


编辑:

之所以没有shadowsocks-heroku是因为Heroku没有websocket支持。

于 2012-11-02T08:35:56.660 回答
1

看看这个:

shadowsocks-heroku 是一个轻量级的隧道代理,可以帮助你通过防火墙。它是 shadowsocks 的一个端口,但通过不同的协议。

shadowsocks-heroku 使用 WebSockets 而不是原始套接字,因此它可以部署在 heroku 上。

请注意,该协议与原始 shadowsocks 不兼容。

https://github.com/mrluanma/shadowsocks-heroku

于 2014-08-26T15:51:11.200 回答