擅长:python、mysql、java
<p>如果非要我猜的话,我想你现在的问题是你没有以根用户身份运行程序。如果您希望能够嗅出其他人的流量(否则这将是一个严重的安全漏洞),那么TCPFlow需要以私有用户的身份运行。我写了下面的程序,它们对你的场景起到了很好的作用</p>
<p>在服务器.py在</p>
<pre><code>#!/usr/bin/python
import socket
s = socket.socket()
host = socket.gethostname()
port = 12345
s.bind((host,port))
s.listen(5)
while True:
c, addr = s.accept()
print 'Connection from', addr
c.send('Test string 1234')
c.recv(1024)
while x != 'q':
print "Received " + x
c.send('Blah')
x = c.recv(1024)
print "Closing connection"
c.close()
</code></pre>
<p>在客户端.py在</p>
^{pr2}$
<p>在流动.py在</p>
<pre><code>#!/usr/bin/python
import subprocess
command = 'tcpflow -c -i any port 12345'
sniffer = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
while True:
print sniffer.stdout.readline()
</code></pre>