分类 Linux 下的文章

按照 基于Linux+Clash实现透明代理(TProxy)详细教程 搭建的透明代理主机,当作为网关使用的时候,进行scp时,出现网络中断,无法正常传输的问题。

现象

$ scp 1Gb.file admin@192.168.10.10:/tmp/
admin@192.168.10.10's password:
1Gb.file                                                    0%    0     0.0KB/s   --:-- ETAConnection to 192.168.10.10 closed by remote host.
lost connection



$ scp 1Gb.file admin@192.168.10.10:/tmp/
admin@192.168.10.10's password:
1Gb.file                                                    1%   14MB  13.3MB/s   01:12 ETA


Timeout, server 192.168.10.10 not responding.
lost connection

ssh连接,作为透明代理,没有问题,一切正常。当进行scp的时候,就会中断。

- 阅读剩余部分 -

摘要

有台 Ubuntu 14.04 的机器,想要查看sshd登录日志,发现没有 /var/log/auth.log 日志文件,同时连 /var/log/syslog 日志文件都不存在,遂排查并处理该问题。

基本情况:

1.rsyslog服务正常启动

2.rsyslog配置了记录日志文件

3./var/log目录中,没有相关日志文件

原因:

/var/log 目录权限是root:root 0755,rsyslog服务配置的用户和组是 syslog:adm,导致无权限在/var/log目录创建相关日志文件。

解决方法:

更改目录所有者和组

sudo chown syslog.adm /var/log/

- 阅读剩余部分 -

一.Shell命令自动补全的实现

1.ip 命令的自动补全是如何实现的?

1.ip命令相关补全文件

/usr/share/bash-completion/completions/ip

2.加载流程

  1. 用户进入交互式bash(终端)
  2. ~/.bashrc 中加载 /usr/share/bash-completion/bash_completion
  3. /usr/share/bash-completion/bash_completion中定义了 _completion_loader函数
  4. 当对一个命令按TAB时,如果这个命令没有补全定义,会触发_completion_loader函数,然后从/usr/share/bash-completion/completions/<command> 查找对应的补全脚本并加载。
  5. 脚本只加载一次,一旦某个命令的补全脚本被加载,它就在当前 Shell 会话里生效,不会每次 TAB 都重新加载。

- 阅读剩余部分 -

-L 本地端口转发

-R 远程端口转发

-D 动态端口转发

Example

# 本地端口转发
# 本地监听端口 9848,用户访问本机的 9848端口,最终访问 HostC的9848端口,通过HostB中转
ssh -L 9848:HostC:9848 user@HostB -N

# 远程端口转发
# 远程主机HostB监听端口 9848
# 用户访问HostB的 9848端口,最终访问 HostA 的9848端口,通过HostA中转
ssh -R 9848:localhost:9848 user@HostB -N

# 动态端口转发
# 本地监听1080端口 SOCKS5协议
# 用户配置本机的1080作为代理,http请求,会通过代理端口转到HostB,然后通过HostB访问http请求
ssh -D 1080 user@HostB -N

- 阅读剩余部分 -