Articles of iptables

在具有多个域的相同服务器上托pipePHP和Node.js应用程序

我有一个Linode VPS,目前运行lighttpd来服务我的PHP网站,并在端口80上侦听。 我也运行Node.js,它侦听端口81,并使用websockets和HTTP与客户端进行交互。 有几个不同的域我想指向这个服务器。 理想情况下,我希望托pipePHP站点的域都与同一个lighttpd服务器交谈,而使用node.js的站点会以某种方式redirect到端口节点.js正在监听客户端不知道的情况(例如,没有30xredirect)。 example-php1.com:80 -> linodebox:80 lighttpd /var/www/example1 example-php2.com:80 -> linodebox:80 lighttpd /var/www/example2 example-node.com:80 -> linodebox:81 node.js 有没有办法做到这一点,无论是通过设置DNS条目或调整iptables? lighttpd是否需要成为node.js的代理? websocketsfunction需要在没有任何回退的情况下工作,访问非节点域(例如example-php1.com:81 )不应公开节点应用程序。 我觉得完美的解决scheme不需要改变现有的应用程序代码,也不需要在软件Web服务器之间进行代理,但我可能是错的。

如何在Linux中打开端口?

我正在研究一个简单的Node.js应用程序。 这需要打开一个特定的端口。 例如,如果我想要应用程序侦听端口(比如说)5122,我将不得不先打开端口5122.为此,我在我的iptables中应用了以下规则 iptables -I INPUT 3 –proto tcp –dport 5122 -j ACCEPT service iptables save 最初这为我工作。 但突然之后,一些停止工作。 我现在想检查5122端口是否真的打开。 我发布了命令 nmap -sT -O localhost 我没有看到这里列出的任何这样的端口。 但 sudo iptables -L shows it like this – ACCEPT tcp — anywhere anywhere tcp dpt:5122 ACCEPT tcp — anywhere anywhere tcp dpt:5122 我看到这一行2次。 仍然困惑! 不知道。 我现在打开以下urlhttp://www.yougetsignal.com/tools/open-ports/,并input我的主机IP和端口,它说,端口5122closures50.56.246.162(这是我的主机IP) 我的问题是我如何永久保持一个特定的端口开放聆听。 任何帮助将不胜感激。

Vagrant,nodejs和iptable端口转发

当我尝试将nodejs用作stream浪者(在OS X上)的Web服务器时,我遇到了一些小问题。 我的configuration文件链接如下,我只有nodejs和mongodb安装。 盒IP是10.10.56.101 (我需要另一个IP比192.168.56.101在我的学校工作)。 我尝试使用下面链接的小脚本访问nodejs服务器。 该脚本只能在端口51160上收听,并且回答OK。 首先,我没有得到任何答案,search后,我发现我需要做一个端口转发和一个iptable它的工作(命令链接下面,端口51160而不是8000 )。 我重新安装了相同configuration的stream浪机,我无法让机器继续工作。 我可以从stream浪机内curl localhost:51160 ,但是我无法从虚拟机之外获取任何内容。 档案: config.yaml: https ://gist.github.com/nobe4/0bb16fdb23279d416656 server.js: https : //gist.github.com/nobe4/639d63ef612f247d9309 iptable命令: https : //gist.github.com/kentbrew/776580#file-node-on-ec2-port-80-txt-L39

打开手机浏览器连接到节点服务器

我需要一个节点中间件,build议手机,我的应用程序是一个强制性的门户网站,所有的请求都通过iptables规则redirect到节点(快速)服务器IP和应用程序完美的作品,但手机浏览器不开始连接,我认为是接近但它不工作: app.use((req, res, next) => { let sites = [ 'localhost:3000', 'localhost', '10.0.0.1:3000', '10.0.0.1', '127.0.0.1', '127.0.0.1:3000' ]; if (sites.indexOf(req.get('host')) === -1) { res.redirect(302, '10.0.0.1'); } }); 我debugging它,像“clients3.google.com/generate_204”等网站的请求被捕获,redirect响应发送,所以我认为是有关标题或redirect代码,但… 还是有另一种方法可以轻松地(使用IPtables或在/etc/resolv.conf中)?

如何模仿一个irc服务器断开连接来testing我的nodejs irc bot?

我正在使用net.Socket模块连接到EFNET并testing我的代码,以便将重新连接事件添加到我的机器人。 有什么方法可以模拟机器人断开连接? 这个问题是非常2-3个星期的问题 – 我已经添加了事件处理程序,以便了解从IRC断开时会发生什么: irc = { info:{} , listeners : [] , socket : new net.Socket() } irc.socket.on('timeout', function() { console.log('timeout'); }); irc.socket.on('error', function() { console.log('error'); }); irc.socket.on('end', function() { console.log('end??') setTimeout(function() { //irc.socket.connect(config.server.port, config.server.addr); }, 1000 ); }); 或者,如果有人知道哪些实际事件通常与irc机器人有关,我会感激。 编辑#1:也许我可以做一些iptables和过滤端口,而它正在运行或沿着这些线?

NodeJS服务器不能从外部访问

我在Rackspace中部署了一个nodejs服务器,并可以在内部访问,如使用: curl http://127.0.0.1:8080 但是,即使我这样做,也不能从外部(互联网)访问: iptables -A OUTPUT -p tcp –dport 8080 -j ACCEPT iptables -A INPUT -p tcp –dport 8080 -j ACCEPT 这是我的代码看起来像: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Simple server\n'); }).listen(8080, "0.0.0.0"); console.log('Server running at http://0.0.0.0:8080/'); 有任何想法吗?

像公共WiFi热点中使用的节点JS互联网网关/强制门户

我想build立一个节点的互联网网关/强制门户网站。 所以我可以有一个用户“授权”他的MAC地址或IP地址,如果MAC地址是不可能的像用于WiFi热点 所以我想到的是节点可以有一个DHCP服务器,它将其IP地址作为网关。 因此,如果用户在networking浏览器上加载一个页面,它会给他们一个authentication屏幕,然后他们可以login,然后网关可以正确地路由它的数据包。 我怎样才能做node.js的授权步骤,所以如果他们没有login它提出了login页面,如果他们要正确的路由数据包?

如何以非root用户身份运行node.js?

我正在运行一个node.js服务器,这将服务于80端口的请求。 显然这需要应用程序以root身份运行(在Linux上)。 以这个post( http://syskall.com/dont-run-node-dot-js-as-root )为例,很明显有很简单的方法可以允许节点作为非root用户运行,但是我想知道是否有人对所提出的不同方法的优缺点有看法: 代码:build立侦听端口80后,使用setuid()从根端下拉到非特权用户。 使用某种types的代理服务器将请求redirect到> 1024端口(因此不需要节点以root身份运行) 使用IP表转发到另一个端口(同上节点不会以root身份运行) 谢谢