是否可以调整内核参数以允许用户程序绑定到端口 80 和 443?
我问的原因是我认为允许特权进程打开套接字并侦听是愚蠢的。任何打开套接字并侦听的东西都是高风险的,高风险的应用程序不应以 root 身份运行。
我更愿意尝试找出哪些非特权进程正在侦听端口 80,而不是尝试删除以 root 权限潜入的恶意软件。
我想关闭客户端和服务器应用程序之间处于侦听模式的开放端口。
Linux 中是否有任何手动命令行选项来关闭端口?
注意: 我开始知道“只有拥有连接的套接字的应用程序才能关闭它,这会在应用程序终止时发生。”
我不明白为什么只有打开它的应用程序才有可能......但我仍然很想知道是否还有其他方法可以做到这一点。
我有一个运行在 的 HTTP 服务器/var/run/my-server.sock,我想通过使用 cURL 发送一个简单的请求来测试它。这可以使用 cURL 来完成吗?它可以完成吗,还是必须有一个反向代理?
我在想象这样的事情:
curl socket:/var/run/my-server.sock:/test/path
Run Code Online (Sandbox Code Playgroud) 我想在不干扰原始连接的情况下监视 unix 套接字上的响应,并将它们通过管道传输到脚本进行处理。
我知道如何使用 tcpdump 进行 tcp 连接,但我似乎找不到本地 unix 套接字的解决方案。
这甚至可能吗?
为什么选择端口 80 作为默认 HTTP 端口,选择 443 作为默认 HTTPS 端口?
有没有原因,还是只是这样定义的?
我知道 Linux 中有命名套接字和命名管道 (fifo)。
在 中ls -l,它们将如下所示:(为了演示,我更改了文件名。)
prw-r--r-- 1 root root 0 Nov 8 16:31 /tmp/fifo
srwxrwxrwx 1 root root 0 Nov 8 15:54 /tmp/socket
Run Code Online (Sandbox Code Playgroud)
现在,可以使用mkfifo. 是否有创建命名套接字的命令?
最后一个选择是编写一个 C 程序,它会调用 mknod 函数,但想知道是否已经有一个命令。
我尝试过的:
我试图搜索 mknod 和 mkfifo 的任何选项,但找不到。
注意:我不是在讨论以太网/网络上的服务器-客户端模型。命名的套接字文件将被同一系统上的 2 个进程使用。
我可以验证连接是否已启动:
$ netstat -tn | grep "192.168.2.110"
tcp 0 0 192.168.2.100:10444 192.168.2.110:52639 ESTABLISHED
Run Code Online (Sandbox Code Playgroud)
有没有办法检查此 tcp 端口连接已启动(已连接)多长时间?
(不,我无权访问应用日志)
我有一个服务器,它侦听传入连接的套接字并输出欢迎文本(“Hello world”)。使用操作系统(此处为 OS X)中的普通工具对此进行测试的最简单方法是什么?我想像一个很好的旧 RS232 终端应用程序:
mac:~ mike$ terminal 192.168.92.123 1234
Hello world
>
Run Code Online (Sandbox Code Playgroud) 如果将 Python 中的套接字绑定到 localhost,8200,则可以通过http://localhost:8200/ 访问。但不是http://xxxx:8200/
如果将 Python 中的套接字绑定到 xxxx,8200, machinename,8200 可以通过http://xxxx:8200/和http://machinename:8200/ 访问,但不能通过http://localhost:8200/
我认为 localhost 的意思是“这台机器”,使用它会“循环回”到机器的 ip 地址,但它似乎是不同的 ips。
127.0.0.1 总是与机器 ip 地址不同的 ip 地址吗?
更新:
我知道实际数字是不同的,但是环回有什么作用?
例如,维基百科说
“将 Web 浏览器指向 URL http://127.0.0.1/或http://localhost/将访问该计算机自己的网站”
但该网站也可以在 xxxx 上访问,并且大概在 xxxx 上设置了一个套接字 那么这两个引用如何工作呢?
结论:
我想我终于明白 127.0.0.1 和 xxxx 是这样工作的
--127.0.0.1 ==\
>- Computer
--x.x.x.x ==/
Run Code Online (Sandbox Code Playgroud)
并不是
--127.0.0.1 ==\
--------------- x.x.x.x >- Computer
Run Code Online (Sandbox Code Playgroud)
或者
--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer
Run Code Online (Sandbox Code Playgroud)
感谢大家的帮助
在例子中,我在网上看到
https://www.datadoghq.com/blog/how-to-collect-haproxy-metrics/#show-me-the-metrics
您可以使用命令行
echo "show stat" | nc -U /var/lib/haproxy/stats
Run Code Online (Sandbox Code Playgroud)
这在输出中非常难看。列不匹配,很难看出发生了什么。
# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,comp_in,comp_out,comp_byp,comp_rsp,lastsess,last_chk,last_agt,qtime,ctime,rtime,ttime,
someapp,FRONTEND,,,1,1,512,1,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,1,,,,,,,,,,,0,0,0,,,0,0,0,0,,,,,,,,
anotherdb,anotherdb-tp-01,0,0,1,1,,1,0,0,,0,,0,0,0,0,no check,1,1,0,,,,,,1,2,1,,1,,2,0,,1,,,,,,,,,,0,,,,0,0,,,,,3006,,,0,0,0,0,
someotherappdb,BACKEND,0,0,1,1,52,1,0,0,0,0,,0,0,0,0,UP,1,1,0,,0,3008,0,,1,2,0,,1,,1,0,,1,,,,,,,,,,,,,,0,0,0,0,0,0,3006,,,0,0,0,0,
Run Code Online (Sandbox Code Playgroud)
有没有一种好方法来清理它并使其更具可读性。
sockets ×10
linux ×5
port ×2
command-line ×1
curl ×1
domain ×1
haproxy ×1
kernel ×1
macos ×1
networking ×1
privileges ×1
tcpdump ×1
tcpip ×1
terminal ×1
unix ×1