我的/ etc / hosts文件如下所示: 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 我发现,虽然build立服务器,虽然我可以ping本地主机成功,在某些像Postfix和Apache和Dovecot服务的configuration文件,我需要指定127.0.0.1而不是localhost ,以使他们的工作。 我还需要更改某些数据库驱动的网站的configuration文件,这些网站使用localhost连接到MySQL。 我已经对hosts文件进行了各种修改,但是迄今为止我都没有尝试过。 服务器运行Ubuntu 12.04.02 LTS。 它没有安装selinux,甚至在设置IPtables默认策略接受并刷新它们之后,上述情况仍然存在。
我已经知道TCP连接是由元组(源IP,源端口,目的IP,目的端口)标识的。 从理论上讲,应该有一个从host1:port1连接到server1:port1的客户机,同时从host1:port1到server2:port1连接另一个客户机(在host1上运行)。 我已经testing了一下Java,到目前为止似乎是可能的。 但是,我已经多次读取源端口必须是唯一的主机地址,这基本上意味着最多有65536个并发传出TCP连接的硬限制。 真的吗? 更新:这是我的Java代码。 这似乎工作,netstat -t清楚地显示了从端口9990(一个到9997,一个到9998)的两个活动的传出连接。 至less在现代Linux上,似乎有可能? Socket s1 = new Socket(); s1.setReuseAddress(true); SocketAddress saremote = new InetSocketAddress("localhost",9999); SocketAddress salocal = new InetSocketAddress("localhost",9990); s1.bind(salocal); s1.connect(saremote); Socket s2 = new Socket(); s2.setReuseAddress(true); SocketAddress saremote2 = new InetSocketAddress("localhost",9998); SocketAddress salocal2 = new InetSocketAddress("localhost",9990); s2.bind(salocal2); s2.connect(saremote2); netstat -t输出(截断): tcp6 0 0 localhost:9990 localhost:9998 CONNECTED tcp6 0 […]
我正在尝试使用mod_proxy_wstunnel将Apache 2.4configuration为将socket.io的websocket连接代理到node.js websocket服务器。 我们使用socket.io 0.9可以正常工作,但是在1.0发行版中,它们将套接字端点更改为查询参数,现在我在使用正确的代理指令configurationapache时遇到了问题。 所有对/socket.io/?EIO=N&transport=websocket (其中N是任何数字,通常为2)的请求都需要被转发到ws://localhost:8082/socket.io/ ,但是所有其他的请求都需要被转发到http://localhost:8082/socket.io/ 。 我试过以下两种configuration的变体: ProxyPass /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPassReverse /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPass /socket.io/ http://localhost:8082/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/ 。 RewriteRule /socket.io/?EIO=([0-9]+)&transport=websocket ws://localhost:8082/socket.io/ [QSA,P] ProxyPass /socket.io/ http://localhost:8082/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/ 我从search结果中发现,ProxyPass和Locations不能定位查询string,那么在这里还有其他的select吗? path被硬编码到socket.io中,所以分叉整个库的时候我无法改变它们。
在Windows上,您可以设置在服务失败时应该发生什么情况。 有没有一种标准的方式在Linux上实现同样的事情(特别是CentOS)? 我的问题的一个更大的部分是:你如何处理已经打开的套接字 – 例如在TIME_WAIT,FIN_WAIT1等状态。 此刻,如果我正在开发的服务崩溃,我必须等待插槽清除或更改监听端口,然后才能手动重新启动它。 谢谢你的帮助。
经过一段时间的运行良好,我们的Windows XP SP3机器之一不再打开一些(!)新的TCP / IP连接。 腻子说, Network Error: no buffer space available ,IE不会打开任何新的连接,但networking驱动器映射仍然工作,甚至可以build立新的连接。 netstat不显示更多的开放连接,通常ping和DNS查找工作正常。 任何提示?
我有一个应用程序正在耗尽文件描述符,显然是通过打开套接字,但我无法确切地知道这些套接字是做什么的。 这些出现在lsof输出中 java 9689 appuser 1010u sock 0,5 263746675 can't identify protocol java 9689 appuser 1011u sock 0,5 263746676 can't identify protocol java 9689 appuser 1012u sock 0,5 263746677 can't identify protocol java 9689 appuser 1014u sock 0,5 263746678 can't identify protocol java 9689 appuser 1015u sock 0,5 263746679 can't identify protocol java 9689 appuser […]
快速的问题 – 我运行两个Linux的盒子,一个我自己的桌面和其他我的VPS。 出于VPS端的安全原因,我select了与MySQL的套接字连接( /var/run/mysqld/mysql.sock )。 我知道我可以像这样隧道: ssh -L 3307:127.0.0.1:3306 [email protected]如果我设置远程SQL服务器来侦听某个端口,但我想知道的是我可以这样做: ssh -L /path/to/myremotesqlserver.sock:/var/run/mysqld/mysql.sock从而隧道两个套接字,而不是两个端口? 一个完全可以接受的解决scheme也将本地端口转发到远程套接字文件,但在可能的情况下,我试图不在远程框上运行TCP服务器。 (是的,我知道tcp会更容易)。
有一个类似于mkfifo的命令,但是对于域套接字?
我正在运行一个nginx服务器,充当上游unix套接字的代理,如下所示: upstream app_server { server unix:/tmp/app.sock fail_timeout=0; } server { listen ###.###.###.###; server_name whatever.server; root /web/root; try_files $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } 一些应用程序服务器进程反过来将请求从/tmp/app.sock提取出来。 这里使用的特定应用程序服务器是Unicorn,但我不认为这与这个问题有关。 问题是,似乎只是经过了一定的负载,nginx无法以足够快的速度通过套接字获取请求。 不pipe我设置了多less个应用程序服务器进程, 我在nginx错误日志中收到了这些消息的洪水: connect() to unix:/tmp/app.sock failed (11: Resource temporarily unavailable) while connecting to upstream 许多请求导致状态码502,而那些需要很长时间才能完成的请求。 […]
我想分析一下mysqlstream量。 现在,所有的mysql请求都被发送到MySQL unix套接字: unix 2 [ ACC ] STREAM LISTENING 3734388 15304/mysqld /var/run/mysqld/mysqld.sock 我试图禁用该套接字强制MySQL使用networking套接字,而不是在环回。 我尝试了注释my.cnf和debian.cnf文件中的所有socket指令并重新启动MySQL,但没有任何区别。 如何禁用MySQL unix套接字来强制MySQL通过networking? 附加信息:我在ubuntu 10.04上运行MySQL 5.1 。 关于问题的精确性 由于许多人build议启用networking套接字我想澄清我的问题,指出绑定地址已经启用bind-address = 127.0.0.1 ,并且侦听连接可用: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 15601/mysqld 我仍然看不到任何连接尝试从我的webapp(Drupal网站)来的127.0.0.1:3306 。 更新与答案 这似乎确实是问题来自Drupal使用的mysqli连接器(在.ht_config.php为有兴趣的人)。 它被设置为: mysqli://drupal:***@localhost/drupal ,将localhost更改为127.0.0.1修复了问题(即Drupal正在连接到networking套接字)。