centos 7 远程连接 ssh connection refused

问题描述:

使用SSH无法连接到远程主机,提示

解决方案:

  1. 使用远程主机供应商所提供的网页版termianl或其他在目前状态下可以连接上远程主机的方法连接远程主机;
  2. 首先查看ssh服务是否安装或启动,service sshd status
  3. 如果提示ssh没有安装,则安装之,sudo yum install openssh-server openssh-client
  4. 如果提示ssh服务没有启动,则启动之,service sshd start
  5. 如果ssh服务已启动,依旧无法使用连接,先测试一下本地是否可以连接,ssh localhost
  6. 如果还是connection refused,则查看ssh配置:vim /etc/ssh/sshd_config,要配置的项及值如下图所示。需要注意的是,配置项Port一定要在配置项ListenAddress之前,并确保配置文件的其他地方没有上述两个配置项的配置
  7. 完成之后重启ssh服务加载最新配置,service sshd restart,此时ssh localhost命令生效
  8. 给防火墙开端口,/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
  9. 开完端口重启防火墙,service iptables restart

到此为止,远程连接 ssh connection refused的问题就得到了解决,可以尝试在本地使用ssh连接一下远程服务器。

 

C++经典面试题(最全,面中率最高)

1.new、delete、malloc、free关系

delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。 Read more

C++知识点

操作符重载

赋值运算符重载

  • 返回值的类型为引用,并在函数结束前返回实例自身的引用(*this)。但是返回引用的目的不是为了允许连续赋值,因为返回实例本身也可以连续赋值。返回引用是为了提高效率。如果返回实例,赋值运算符重载函数会自动调用拷贝构造函数创建一个临时对象,并在连续赋值完毕后自动调用析构函数,增加了程序开销。另外,如果没有自己定义性能良好的拷贝构造函数,会调用默认拷贝构造函数。而默认拷贝构造函数的是浅拷贝,当实例中有指针时,无法正确拷贝一个实例。需要注意的是,当返回值的类型为引用时,赋值操作符号返回一个reference(引用)指向操作符号的左侧实参(而事实上重载运算符的左侧实参就是调用对象本身)。
  • 传入的参数应该是常量引用。引用的目的是为了不调用拷贝构造函数,常量的目的是在赋值操作符重载函数中不会修改传入的参数。
  • 是否释放已有的内存。如果我们忘记在分配新内存之前释放自身已有的空间,则程序将出现内存泄漏。
  • 判断传入的参数是不是当前的实例(*this)。如果事先不判断就赋值,那么在释放自身内存后,就无法找到需要赋值的内容了。

 

 

SHELL学习笔记之分割字符串

分割后的item_array是一个数组,数组下表从0开始。

${item_array[1]}           # 获取数组的第1个元素
${item_array[*]}           # 数组的所有元素.
${item_array[@]}         # 同${names[*]}.
${#item_array[1]}         # 获取数字第1个元素的内容的长度.
${#item_array[*]}         # 获取数组中的元素个数.
${#item_array[@]}       # 同${#names[*]}.

Solution2 for GSH

 

Solution for GSH