前言

之前在本地docker上虽然可以运行二进制程序,但无法动调(现在都还没解决del>懒得去弄了,直接用钞能力)

就想买台阿里云服务器来实现,但但我动调的时候发现不行

此时已正常运行image-20220101230438263服务

我怀疑是云服务器端口没开,就想用 Telnet 来检测一下


测试端口23946是否可通

首先安装 Telnet

Windows 平台

打开控制面板

首先我们打开控制面板,打开方式较多,这里举如图所示方式打开image-20220101230857288

依次操作:

image-20220101231100401image-20220101231528543image-20220101231627964
之后点确定.

接着打开命令提示符(通过运行等方法也可以)image-20220101231751197

Mac 平台

由于新版本的 Mac os 取消了内置的telnet命令,所以需要额外安装.

安装 homebrew

(如果安装可以自行跳过)

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

输入密码之后一直回车就可以了

查看homebrew 是否安装成功

在终端中键入 homebrew help 如果出现如图所示即为成功 image-20220101232356792

使用 homebrew 安装telnet
1
brew install telnet
image-20220101232648332 (上面那行是我终端走代理,这样会快一点.)
查看是否安装成功
image-20220101232844212

到这就安装完成了.

telnet使用

键入telnet ip 23946,其中ip换成你的服务器ip
如果一直停在正在连接的界面,则证明端口未开.例如:
image-20220101232035983image-20220101233316935我的这个服务器端口就是关闭的.


接下来就是

阿里云端口放行

img


关闭CentOS自带的防火墙

如果你是CentOS还需要关闭CentOS自带的防火墙(阿里云的放行端口和CentOS自带的防火墙的放行端口不是一个概念)
如果你是使用的是ubuntu等,应该不需要这一步的。

1
2
ps -ef|grep firewall
firewall-cmd --state

查看防火墙状态

1
firewall-cmd --list-all

查看防火墙放行端口

1
firewall-cmd --permanent --add-port=23946/tcp

放行23946端口

1
service firewalld reload

重启防火墙

1
firewall-cmd --list-all

再次查看防火墙放行端口

image-20220102193700015image-20220102193814855


拓展

(截图内容取自网络.)

端口占用

img

可能是已经运行过一个linux_server或linux_server64程序,也可能是其他程序占用了默认端口23946

img

1
netstat -ntlp|grep 23946

查看正在使用端口23946的程序的信息

1
ps -ef|grep linux_server

查看包含字符串linux_server的程序的信息

这两条命令可以看出27811的进程跑着linux_server,占用了23946端口

1
kill -9 27811

杀掉进程

客户端弹窗报错

“incompatible debugging server:address size is 4 bytes,expected 4”

检查程序的位数和linux_server的位数和客户端的位数,需一致。

添加密码验证

启动linux_server时添加-P

1
./linux_server64 -P123456

将123456替换成你设置的密码。

注意,-P和密码之间不能有空格,要紧挨着。如果有空格,则密码仍为空。

然后在客户端填写密码。

此图来自网络

后台运行linux_server

linux的一个终端就是一个进程,如果你关闭了这个终端,里面进行的服务也会中断。这里介绍一个命令。

screen -S name创建一个新窗口,名称为name(name可以替换成你希望的名称),然后在这个窗口内打开linux_server服务。

当你需要回到主窗口时,先按ctrl+a,然后继续按下d,按d的时候不要放松ctrl+a,即可回到主界面。

想要回到name窗口,可使用screen -r name,如果除了主窗口外只有一个窗口,可以使用screen -r

这样,只要你不杀掉新开的这个窗口,哪怕你关掉终端,也能远程调试。

但是需要注意的是,这样一直开着linux_server服务,存在安全隐患,所以不调试时建议不要开启linux_server服务。

更多screen使用方式,欢迎谷歌搜索。