我正在做某种学校项目,我必须让我的虚拟机(使用 virtualbox 来托管虚拟机)使用端口 6969 与我的主机进行通信。
问题是,即使在我尝试打开这个特定端口的所有操作之后,虚拟机仍然说连接被拒绝。我使用的是桥接适配器,虚拟机是linux虚拟机,我的主机是manjaro。我无法在虚拟机上执行任何 sudoer 操作,它安装在学校提供的 iso 上,该 iso 肯定可以正常工作(除了我之外没有人对此有任何问题),但没有给我任何管理权限。
不过 ssh 连接很好,以下是我在虚拟机上运行的一些命令:
$> nc -zvw10 192.168.1.40 6969
nc: connect to 192.168.1.40 port 6969 (tcp) failed: Connection refused
$> nc -zvw10 192.168.1.40 22
Connection to 192.168.1.40 22 port [tcp/ssh] succeeded!
我在主机端打开并刷新了 iptables:
$> sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
尝试使用 iptable 设置新规则
sudo iptables -A INPUT -p tcp --dport 6969 -j ACCEPT
sudo systemctl restart iptables
尝试使用 Gufw(ufw 的 gui)来设置新规则,但没有成功。
任何关于尝试的想法都会对我有很大帮助。谢谢阅读。
编辑:我需要使用 C 语言编写的可执行文件与主机进行通信,该可执行文件似乎使用 connect() 发送数据,所以我无法选择在这里进行通信的方式,我只知道它使用端口 6969 连接到给定的 ip .(我使用主机本地IP作为连接目标)