Java实现telnet到阿里云ubuntu服务器

开启telnet服务:

阿里云服务器默认是不开启telnet服务的,因此我们要先在控制器里面配置一下,具体步骤如下所示:




通过以上步骤,就可以打开23端口,开启Telnet服务;


接下来我们要配置一些文件,具体参见:http://www.jb51.net/article/98670.htm

 然后最重要的一点就是,telnet是需要用户名和密码登录的,因此如果你是用“root“登录的,必须要在vi /etc/pam.d/login文件中将“auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so”禁掉,不然是登陆不上的,或者另外创建一个用户登录

到上步就基本完成了telnet配置,具体Java代码如下所示:

/**  
 * commons-net-2.0.jar是工程依赖包  ,需要另行下载
 */  
package examples.telnet;   
  
import java.io.InputStream;   
import java.io.PrintStream;   
  
import org.apache.commons.net.telnet.TelnetClient;   //下载 commons-net.zip,解压得到commons-net.jar,再把它加到build path里
  
/**  
 * @descript NetTelenet.java  
 * @author sinclair  
 * @date Jun 10, 2010  
 */  
public class NetTelnet {   
    private TelnetClient telnet = new TelnetClient();   
    private InputStream in;   
    private PrintStream out;   
    private char prompt = '$';// 普通用户结束   
  
    public NetTelnet( String ip, int port, String user, String password ) {   
    try {   
        telnet.connect( ip, port );   
        in = telnet.getInputStream();   
        out = new PrintStream( telnet.getOutputStream() );   
        // 根据root用户设置结束符   
        this.prompt = user.equals( "root" ) ? '#' : '$';   
        login( user, password );   
    } catch ( Exception e ) {   
        e.printStackTrace();   
    }   
    }   
  
    /**  
     * 登录  
     *   
     * @param user  
     * @param password  
     */  
    public void login( String user, String password ) {   
    readUntil( "login:" );   
    write( user );   
    readUntil( "Password:" );   
    write( password );   
    readUntil( prompt + " " );   
    }   
  
    /**  
     * 读取分析结果  
     *   
     * @param pattern  
     * @return  
     */  
    public String readUntil( String pattern ) {   
    try {   
        char lastChar = pattern.charAt( pattern.length() - 1 );   
        StringBuffer sb = new StringBuffer();   
        char ch = ( char ) in.read();   
        while ( true ) {   
        sb.append( ch );   
        if (ch == lastChar) {   
            if (sb.toString().endsWith( pattern )) {   
            return sb.toString();   
            }   
        }   
        ch = ( char ) in.read();   
        }   
    } catch ( Exception e ) {   
        e.printStackTrace();   
    }   
    return null;   
    }   
  
    /**  
     * 写操作  
     *   
     * @param value  
     */  
    public void write( String value ) {   
    try {   
        out.println( value );   
        out.flush();   
    } catch ( Exception e ) {   
        e.printStackTrace();   
    }   
    }   
  
    /**  
     * 向目标发送命令字符串  
     *   
     * @param command  
     * @return  
     */  
    public String sendCommand( String command ) {   
    try {   
        write( command );   
        return readUntil( prompt + " " );   
    } catch ( Exception e ) {   
        e.printStackTrace();   
    }   
    return null;   
    }   
  
    /**  
     * 关闭连接  
     */  
    public void disconnect() {   
    try {   
        telnet.disconnect();   
    } catch ( Exception e ) {   
        e.printStackTrace();   
    }   
    }   
  
    public static void main( String[] args ) {   
    try {   
        System.out.println( "启动Telnet..." );   
        String ip = "";   
        int port = 23;   
        String user = "";   
        String password = "";   
        NetTelnet telnet = new NetTelnet( ip, port, user, password );   
        telnet.sendCommand( "ifconfig" );   
        telnet.sendCommand("cd /home");
        
        System.out.println( telnet.sendCommand( "pwd" ));
//        String r1 = telnet.sendCommand( "cd /home/project/" );   
//        String r2 = telnet.sendCommand( "pwd" );   
//        String r3 = telnet.sendCommand( "sh a.sh" );   
//  
//        System.out.println( "显示结果" );   
//        System.out.println( r1 );   
//        System.out.println( r2 );   
//        System.out.println( r3 );   
  
        telnet.disconnect();   
    } catch ( Exception e ) {   
        e.printStackTrace();   
    }   
    }   
}  


这样就实现了telnet阿里云ubuntu服务器







  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值