我想要完成的任务:让shadowsocks-node.js在heroku上运行。
shadowsocks-nodejs是一个轻量级隧道代理,可以帮助您通过防火墙。
我让它在同一台机器上本地运行两个进程 我的下一步是将它部署到heroku并在我的机器上本地运行server.js和local.js。但是,我似乎无法建立连接。
我的问题:服务器进程似乎拒绝了连接。
node 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.
(有道理)
这是我在shadowocks使用的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": "*"
}
}
这可能只是一个简单的设置问题或一些不正确的地址。如果你们中的某个人可以帮助我,那就太好了 非常感谢!
答案 0 :(得分:2)
shadowsocks-nodejs与Heroku不兼容。它使用原始套接字,而Heroku只提供HTTP访问。
您可以在VPS上部署shadowsocks-nodejs,并可以自由使用原始套接字,或者如果您需要免费代理,请使用shadowsocks-dotcloud。
编辑:
没有shadowsocks-heroku的原因是Heroku没有websocket支持。
答案 1 :(得分:1)
看看这个:
shadowsocks-heroku是一个轻量级隧道代理,可以帮助您通过防火墙。它是shadowsocks的一个端口,但通过不同的协议。
shadowsocks-heroku使用WebSockets而不是原始套接字,因此可以在heroku上部署。
请注意,协议与原始shadowsocks不兼容。