tcp6 0 0 :::443 :::* LISTEN 1/init
udp6 0 0 :::443 :::* 1/init
vps 上面的 443 端口居然被 init 给占用了, grep 下 etc 下面的东西, 没发现有监听 443 的东西, 怎么解?
vps 肯定没被黑, 这个我可以确定, 因为我有 2 个 vps, 同一个服务商的, 只不过地点不一样, 检验过文件 md5 都没问题
1
aries1998 OP 找到问题了..............
lsof -i :443 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 22u IPv6 322205931 0t0 TCP *:https (LISTEN) systemd 1 root 42u IPv6 322205932 0t0 UDP *:https ocserv-ma 1228 root 3u IPv6 322205931 0t0 TCP *:https (LISTEN) ocserv-ma 1228 root 4u IPv6 322205932 0t0 UDP *:https 某个时候装了 ocserv, 但是为什么 netstat 看 443 端口是被 init 占用的, 难道 init 还能做个 wrapper 转发包? 是我孤陋寡闻了? |
3
XiaoxiaoPu 2016-12-11 22:46:29 +08:00
应该是 ocserv 用了 systemd socket unit ,就是端口由 systemd 监听,平时 ocserv 不启动,有连接进来后 systemd 自动自动 ocserv 并转发连接
|
4
aries1998 OP @XiaoxiaoPu 应该是这么回事, init 我的理解中是和网络没有半毛钱关系的, 好久没用 linux 了, systemd 这东西实在用得不习惯 , 这块一天到晚变来变去, 各种发行版各种套路, 烦得要死
|
5
billlee 2016-12-11 23:07:37 +08:00
|
6
aries1998 OP @billlee 我还停留在 init+rcX.d 启动级别的阶段, 后面出来的这些 systemd 之类的新东西真心不想去看, 反正感觉原来的很简单的系统结构现在弄得是越来越反人类.
还有那个什么 predicted network name 之类的高端玩意, 好好的大家都知道的名字 eth0 不用, 非要搞出个什么 enp0s7 之类莫名其妙的名字 |
7
billlee 2016-12-11 23:33:12 +08:00
@aries1998 其实 systemd 是把事情变简单的,以前写个 daemon, 要 fork 2 次, setsid, 调整 stdin/stdout/stderr, setuid,自己搞日志系统等一大堆事情。有 systemd 以后这些都不需要做了,就写个配置文件,让 systemd 去调用普通的前台程序, daemonize 和降权的过程 systemd 帮你做好,输出到 stdout/stderr/syslog 的信息自动记录到日志。
|
8
momi 2016-12-11 23:37:30 +08:00
@aries1998 目前的 linux 发行版本确实越来越让人不爽了,以 remove systemd 为关键词一搜索,出来一大堆帖子或邮件,但搞开发的就是固执己见,也没见人列出这个 systemd 究竟有哪些非换不可的优点。
切换运行级别, init 3/5 ,本来多简单、直观的,现在在 systemd 下虽然也能用,但文档上都是建议用 systemctl isolate multi-user.target 要不是能自动补全,真是能烦死人。 |
9
jimzhong 2016-12-11 23:41:44 +08:00
很早以前是有一个 inted 用于接管 TCP 连接的
|
10
Tyanboot 2016-12-11 23:57:41 +08:00 via Android
@momi https://www.google.com/search?q=remove+sysvinit
@aries1998 你说的 systemd 变来变去又是什么情况?现在新的发现版基本都是 systemd 了吧。套路也都是一样的。 unit 文件什么位置不都一样。一个 unit 复制到其他地方也能用。 systemd 的出现让事情变得简单了。写单元文件也比以前的脚本方便多了啊。 |
11
aries1998 OP @billlee 我能理解 systemd 想做什么事情, 但是实在和我认为的类 unix 系统理念不同, 原来的各种工具就是 do one thing and do it good , 各种程序之间尽可能低耦合, 通过 pipeline 或者其他方式来粘合不同工具, 理解起来简单,用起来也简单.
|
13
ericFork 2016-12-12 00:08:06 +08:00
从现在开始接触 linux server ,是好时候, systemd 接管了很多古老的东西,用统一和现代化的方式组织和管理起来。如果是习惯了旧的方式,迁移和学习成本肯定是不愉快的
|
14
htfy96 2016-12-12 01:10:27 +08:00 via Android
作为直接 systemd 入门的感觉比 sysVinit 等 shell script 的解决方案舒服很多。现在能写 Python 就不用 shell script
|
15
aries1998 OP google 了下关于 systemd 的争论, 发现又是一个月经的话题, 更多的是个人偏好的问题, 我这种不喜欢对大而全的自然对 systemd 不感冒, 各有各的好处, 看场合, 也就是上下文, 单独讨论 systemd 确实没太大意义, 大家洗洗睡吧.
|
16
Vicer 2016-12-12 05:43:03 +08:00 via Android 1
不太喜欢,所以用回 debian 7 了
|
18
hosiet 2016-12-12 09:12:24 +08:00 via Android
时代在发展, systemd 总有一天也会被替代,但同时不能否认现在 systemd 是走在时代前沿的 init 系统之一。
楼主碰到的 socket activation 是 systemd 值得自豪的杀手级功能之一,故名思义通过 socket 连接触发服务启动,极其适合 cups / ssh / ocserv 这种按需启动的服务。不论具体实现,这种设计思路我觉得很赞。 |
19
wwqgtxx 2016-12-12 10:12:22 +08:00 via iPhone
其实大家天天喊着 systemd 不好用大多是只是不想学习新鲜事物的惰性,毕竟旧知识能用,干嘛要学新的
而这个东西本身本身好不好用,有没有先进的地方人们不关心 |
20
Mdrights 2016-12-12 10:42:55 +08:00 via iPhone
|
21
aries1998 OP @wwqgtxx 这个可和新东西还是老东西没什么关系, 更谈不上什么学习成本, 用 linux 时间长的, systemd 花点时间还弄不清楚就别玩了, 关键是理念问题, systemd 和其他程序的耦合程度太高, 它想做成一个无所不包的底层, 这样为了兼容一大堆程序,它势必会维护一堆的 patch(明明 A 程序没问题, 但是 A+systemd 就有问题了)
当然日常随便用用自然不会觉得 systemd 有什么问题, 改几个 unit 的配置文件问题而已嘛, 但是在企业应用场合, sa 最关心的不是这东西的看起来有多强大,多先进, 而是系统的可见性对他是不是足够好. @Mdrights 你还别说, 我现在还真不喜欢 slackware 这种, lfs-->gentoo-->arch--->debian--> .....类似这种学习路径没大问题, 但 linux 终究只是个工具, 折腾过头就没意思了 , 我也是用了 linux 快 15 年的老用户, 已经不折腾好多年了 :) |