据我了解,防火墙(假设默认设置)拒绝所有没有先前对应的传出流量的传入流量。
基于Reversing an ssh connection和SSH Tunneling Made Easy,反向 SSH 隧道可用于绕过烦人的防火墙限制。
我想在远程机器上执行 shell 命令。远程机器有自己的防火墙,并在附加防火墙(路由器)后面。它有一个像 192.168.1.126(或类似的东西)这样的 IP 地址。我不在防火墙后面,我知道从 Internet 上看到的远程机器的 IP 地址(不是 192.168.1.126 地址)。此外,我可以要求某人ssh (something)首先在远程机器上以 root身份执行。
谁能一步一步地向我解释反向 SSH 隧道如何绕过防火墙(本地和远程机器的防火墙以及它们之间的附加防火墙)?
开关 ( -R, -f, -L, -N)的作用是什么?
我试过 dd, dd_rescue和ddrescue,都失败了。我认为这些工具绕过文件系统并进行按位复制。
dd 被愚弄了,它完成了但只是生成一个小文件并说明它已完成。
dd_rescuse 和 ddrescue 抱怨读取错误并且速度慢得令人无法忍受。这些工具只能在 10 分钟内复制几 MB。
重要提示:VLC 无法打开 DVD。
为什么会发生这种情况,为什么这些工具会失败?
AnyDVD可以在一秒钟内将光盘复制到 Win7 主机上。它说 UDF 文件系统已打补丁,奇怪的是,它还说没有坏扇区。可以在 10 分钟内复制整个光盘。
更新:至于解决方案,请参阅我在 superuser 上的类似问题。
选项卡路径完成不起作用(至少在 Ubuntu 和 AFAIK Arch 上)与
sudo mount <whatever>
Run Code Online (Sandbox Code Playgroud)
我尝试挂载的 iso 文件不在/etc/fstab. 如果我只是输入
mount <whatever>
Run Code Online (Sandbox Code Playgroud)
完成工作(但当然命令失败,因为我不是 root)。显然是sudo它打破了它。
如何使用 sudo 完成工作?
令人惊讶的是,与
sudo umount <whatever>
Run Code Online (Sandbox Code Playgroud)
完成工作。它是如何实现的?它调查/etc/fstab吗?
解决方案:我只是将一个 shell 脚本放入带有传递给它的参数的/usr/local/bin调用中sudo mount ...。调用此脚本时完成工作,因为没有sudo障碍。
鉴于以下文件:
data/A/a.txt
data/B/b.pdf
...
date/P/whatever.log
...
data/Z/z.jpg
Run Code Online (Sandbox Code Playgroud)
我想删除data/A/, data/B/, ...,data/Z/目录中的所有文件,但位于文件中列出的目录之一下的那些文件除外data/dont_clean.txt。例如,如果我们已经data/P在 中列出,data/dont_clean.txt那么在 下不应触及任何内容data/P/,等等。
就像是:
find data/ -mindepth 2 -maxdepth 2 -type f -not -path {listed in data/dont_clean} -delete
Run Code Online (Sandbox Code Playgroud)
当然,这不是有效的命令。
我也尝试过
find data/ -mindepth 2 -maxdepth 2 -type f -exec grep data/dont_clean.txt '{}' \;
Run Code Online (Sandbox Code Playgroud)
但我只创建了一个无效的命令,或者我不知道为什么我得到了我所做的输出。
我在 Ubuntu 12.10 上使用 bash
的/tmp/in,/tmp/out并且/tmp/err已经创建的命名管道,以及一些进程打开(分别用于阅读,写作和写作)。
我想创建一个新进程,将其 stdin 导入/tmp/in,并将 的内容写入/tmp/out其标准输出,并将 的内容/tmp/err写入其标准错误。一切都应该以行缓冲的方式工作。当创建的另一个进程/tmp/in停止读取并关闭时,该进程应该退出/tmp/in。该解决方案应该适用于 Ubuntu,最好不安装任何额外的软件包。我想在 bash 脚本中解决它。
Mikeserv指出,没有SSCCE,很难理解我想要什么。所以,下面是一个 SSCCE,但请记住,这是一个最小的例子,所以它非常愚蠢。
原来的设置
父进程启动子进程并通过子进程的 stdin 和 stdout 逐行与它通信。如果我运行它,我会得到:
$ python parent.py
Parent writes to child: a
Response from the child: A
Parent writes to child: b
Response from the child: B
Parent writes to child: c
Response from the child: C
Parent writes to child: d
Response from the child: …Run Code Online (Sandbox Code Playgroud) 目标是启动一个后台进程,将数据从管道 p2 复制到 STDOUT,因为 p2 是由其他进程提供数据的。
我猜命令不正确。尽管如此,Konsole 应用程序窗口不应在按下 Enter 键后立即消失。我应该收到错误消息或提交崩溃报告窗口或其他任何内容。
为什么会发生这种情况,这是一个错误吗?
如何修复命令以获得我想要的?(稍后我可能想将数据复制到 STDOUT 以外的其他地方。)