init 占用 443 端口?

2016-12-11 22:32:18 +08:00
 aries1998

tcp6 0 0 :::443 :::* LISTEN 1/init
udp6 0 0 :::443 :::* 1/init

vps 上面的 443 端口居然被 init 给占用了, grep 下 etc 下面的东西, 没发现有监听 443 的东西, 怎么解?

vps 肯定没被黑, 这个我可以确定, 因为我有 2 个 vps, 同一个服务商的, 只不过地点不一样, 检验过文件 md5 都没问题

4743 次点击
所在节点    Linux
21 条回复
aries1998
2016-12-11 22:38:09 +08:00
找到问题了..............

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 转发包? 是我孤陋寡闻了?
momi
2016-12-11 22:41:50 +08:00
@aries1998 我的理解,系统启动时, systemd 是被 init 启动的。
XiaoxiaoPu
2016-12-11 22:46:29 +08:00
应该是 ocserv 用了 systemd socket unit ,就是端口由 systemd 监听,平时 ocserv 不启动,有连接进来后 systemd 自动自动 ocserv 并转发连接
aries1998
2016-12-11 22:50:18 +08:00
@XiaoxiaoPu 应该是这么回事, init 我的理解中是和网络没有半毛钱关系的, 好久没用 linux 了, systemd 这东西实在用得不习惯 , 这块一天到晚变来变去, 各种发行版各种套路, 烦得要死
billlee
2016-12-11 23:07:37 +08:00
@momi systemd 就是 init

@aries1998 systemd 把以前的 syslogd, udevd, xinetd, cron 什么的功能全部集成进来了。你觉得它变来变去是什么情况,现在 Debian 和 CentOS 都是刚开始用 systemd 的, Debian 上的 systemd 版本新一点,但两边都是兼容的啊。
aries1998
2016-12-11 23:17:44 +08:00
@billlee 我还停留在 init+rcX.d 启动级别的阶段, 后面出来的这些 systemd 之类的新东西真心不想去看, 反正感觉原来的很简单的系统结构现在弄得是越来越反人类.

还有那个什么 predicted network name 之类的高端玩意, 好好的大家都知道的名字 eth0 不用, 非要搞出个什么 enp0s7 之类莫名其妙的名字
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 的信息自动记录到日志。
momi
2016-12-11 23:37:30 +08:00
@aries1998 目前的 linux 发行版本确实越来越让人不爽了,以 remove systemd 为关键词一搜索,出来一大堆帖子或邮件,但搞开发的就是固执己见,也没见人列出这个 systemd 究竟有哪些非换不可的优点。

切换运行级别, init 3/5 ,本来多简单、直观的,现在在 systemd 下虽然也能用,但文档上都是建议用
systemctl isolate multi-user.target
要不是能自动补全,真是能烦死人。
jimzhong
2016-12-11 23:41:44 +08:00
很早以前是有一个 inted 用于接管 TCP 连接的
Tyanboot
2016-12-11 23:57:41 +08:00
@momi https://www.google.com/search?q=remove+sysvinit


@aries1998 你说的 systemd 变来变去又是什么情况?现在新的发现版基本都是 systemd 了吧。套路也都是一样的。 unit 文件什么位置不都一样。一个 unit 复制到其他地方也能用。 systemd 的出现让事情变得简单了。写单元文件也比以前的脚本方便多了啊。
aries1998
2016-12-12 00:04:17 +08:00
@billlee 我能理解 systemd 想做什么事情, 但是实在和我认为的类 unix 系统理念不同, 原来的各种工具就是 do one thing and do it good , 各种程序之间尽可能低耦合, 通过 pipeline 或者其他方式来粘合不同工具, 理解起来简单,用起来也简单.
aries1998
2016-12-12 00:05:52 +08:00
@Tyanboot 我说的变来变去不是指 systemd 本身, 是说系统整个的启动,运行,接管等机制变来变去
ericFork
2016-12-12 00:08:06 +08:00
从现在开始接触 linux server ,是好时候, systemd 接管了很多古老的东西,用统一和现代化的方式组织和管理起来。如果是习惯了旧的方式,迁移和学习成本肯定是不愉快的
htfy96
2016-12-12 01:10:27 +08:00
作为直接 systemd 入门的感觉比 sysVinit 等 shell script 的解决方案舒服很多。现在能写 Python 就不用 shell script
aries1998
2016-12-12 01:37:59 +08:00
google 了下关于 systemd 的争论, 发现又是一个月经的话题, 更多的是个人偏好的问题, 我这种不喜欢对大而全的自然对 systemd 不感冒, 各有各的好处, 看场合, 也就是上下文, 单独讨论 systemd 确实没太大意义, 大家洗洗睡吧.
Vicer
2016-12-12 05:43:03 +08:00
不太喜欢,所以用回 debian 7 了
ocian
2016-12-12 07:21:26 +08:00
@Vicer 有一个没有 systemd 的 debian 版本,好像叫 devaue
hosiet
2016-12-12 09:12:24 +08:00
时代在发展, systemd 总有一天也会被替代,但同时不能否认现在 systemd 是走在时代前沿的 init 系统之一。

楼主碰到的 socket activation 是 systemd 值得自豪的杀手级功能之一,故名思义通过 socket 连接触发服务启动,极其适合 cups / ssh / ocserv 这种按需启动的服务。不论具体实现,这种设计思路我觉得很赞。
wwqgtxx
2016-12-12 10:12:22 +08:00
其实大家天天喊着 systemd 不好用大多是只是不想学习新鲜事物的惰性,毕竟旧知识能用,干嘛要学新的
而这个东西本身本身好不好用,有没有先进的地方人们不关心
Mdrights
2016-12-12 10:42:55 +08:00
@ocian
@aries1998
非 systemd 的叫 devuan. :)
另外 安利一下 Slackware 喔,全是腳本。

總之,對系統管理員來說,是操作更簡單了。對自由 geek ,肯定覺得這很不 unix ,哈哈。理解樓主

另外歡迎到 telegram 的 old unix 群組來玩兒。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/326900

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX