这比什么都更无趣。我的一个朋友问我'在 Linux 下只有 root 可以使用哪个端口范围?我告诉他0-1024被限制了。然后他问我为什么会这样……我不知所措。什么都不知道。
是否有理由限制这些端口而 1025-65535 不受限制?
大多数主要的网络服务(HTTP、FTP、SSH、Telnet、HTTPS、POP、SMTP 等)都在这个范围内,所以我想到了可能的答案:
任何人都可以在这里阐明吗?
简介:我创建了一个 bash 函数,它能够检查端口是否可用,如果为 false,则将其加 1,直到达到某个最大端口号。例如,如果端口 500 不可用,则将检查 501 的可用性,直到 550。
目标:为了测试这个 bash 功能,我需要创建一系列处于 LISTEN 状态的端口。
尝试:在 Windows 上,可以使用以下 PowerShell 命令创建 LISTEN 端口:
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>
Run Code Online (Sandbox Code Playgroud)
基于此,我试图考虑一个可以在 CentOS 上执行相同操作的命令,但我不知道为什么,我在没有找到解决此问题的解决方案的情况下开始使用 Google。
预期答案:我将接受并赞成包含能够创建 LISTEN 端口的命令的答案,一旦运行该命令,该端口应保持在 LISTEN 状态,即:
[user@host ~]$ ss -nat …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 linux 机器上运行 weblogic 服务器,但出现以下错误:
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
Run Code Online (Sandbox Code Playgroud)
我认为该错误意味着默认情况下为 8453 的调试器端口已被某些其他服务保留。如何找出在特定端口号中运行的服务?
PS:我使用了netstat
命令,但它显示了占用所有端口的所有服务..这里我只对特定端口感兴趣。
我有一个监听 2 个端口的进程:45136/tcp 和 37208/udp(实际上我认为它是同一个进程)。但 netstat 不返回任何 pid :
netstat -antlp | grep 45136
tcp 0 0 0.0.0.0:45136 0.0.0.0:* LISTEN -
Run Code Online (Sandbox Code Playgroud)
结果与“grep 37208”相同。
我也试过 lsof :
lsof -i TCP:45136
Run Code Online (Sandbox Code Playgroud)
但它不会返回任何东西。这是squeeze的新安装,我真的不知道这个过程是什么。任何的想法 ?
ANSWER 感谢您的意见,我发现它是什么。我卸载了 nfs-server nfs-common(在 dkpg --get-selections | grep nfs 搜索之后)并且未知进程消失了。奇怪的是,内核进程没有以任何方式标记。
再次感谢你们两位。;)
我在 VirtualBox 上创建了一个带有两个接口的 Debian VM:一个 NAT(用于访问互联网)和一个仅限主机的接口。但是,我不知道如何让两个界面同时工作。如果我将仅主机定义为适配器 1,则可以从主机访问我的 VM,但不能从 Internet 访问;如果我将 NAT 定义为适配器 1,我可以访问互联网但无法访问我的来宾 Debian。
那么,我怎样才能让两个接口一起工作呢?
注意:我仍在尝试将主机的某个端口映射到来宾 SO 的 SSH 端口,因此无需建议我这样做:)
编辑:这是ifconfig
第一个适配器是仅主机适配器时的输出 :
eth0 Link encap:Ethernet HWaddr 08:00:27:f6:b2:45
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef6:b245/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:495 errors:0 dropped:0 overruns:0 frame:0
TX packets:206 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:48187 (47.0 KiB) TX bytes:38222 (37.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host …
Run Code Online (Sandbox Code Playgroud) 我有 Ubuntu 12.10,我在上面安装了虚拟机,我在上面设置了 Centos 6.4 i386。在 Ubuntu 上,我有: 3.5.0-17-generic kernel running。
在虚拟机上,我安装了 Centos 6.4 并且一切正常,但是当我启动到 VM 机器时,只有环回接口。没有其他的。我尝试手动添加 ifcfg-eth0 文件,但没有任何反应。在 VM 设置中,我添加了 NAT 和 HostOnly 接口,但是每当我启动到 Centos 时,只有 lo 接口。我该怎么办?
我无法ifdown
在 Debian 6.0.5 上使用接口:
user@box:/etc/network$ sudo ifdown eth0 && sudo ifup eth0
ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.
user@box:/etc/network$ cat interfaces
auto lo
iface lo inet loopback
allow-hotplug eth0
allow-hotplug eth1
auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
auto eth1
iface eth1 inet manual
Run Code Online (Sandbox Code Playgroud)
根据马可的要求:
user@box:/etc/network/$ cat /run/network/ifstate
lo=lo
eth1=eth1
Run Code Online (Sandbox Code Playgroud) 是否可以设置 Linux 系统使其提供超过 65,535 个端口?目的是让超过 65k 个守护进程在给定的系统上监听。
显然有端口正在使用,因此由于这些原因这是不可能的,因此将其视为尝试了解 TCP 在执行此类操作时会受到限制的地方的理论练习。
我在远程 CentOS 5.6 机器上做一些工作,但我的网络一直在掉线。有没有办法在重新连接后恢复挂起的会话?
编辑:我正在用 yum 进行一些更新和安装,我担心如果进程一直挂在他们正在做的事情中间,这可能是一个问题。
我注意到我的一个服务器被黑客入侵并感染了一个已知的中国僵尸网络。
这是一个原型/测试虚拟机,有自己的静态 IP(美国地址),所以没有造成任何伤害(我花了一段时间才弄明白)。
现在我想知道入侵使用的是什么IP/s,以了解攻击是否来自中国。
有没有办法在服务器上的 ssh 上查看接收连接的历史记录?
编辑:系统是 Linux Debian 7