在 Bash 脚本中将主机名解析为 IP 地址的最简洁方法是什么?我正在使用Arch Linux。
据我了解,防火墙(假设默认设置)拒绝所有没有先前对应的传出流量的传入流量。
基于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
)的作用是什么?
如何检查我使用的是哪个 DNS 服务器(在 Linux 中)?我正在使用网络管理器和到我大学 LAN 的有线连接。(我试图找出为什么我的域没有得到解析)
我在网上看到的大部分信息都说要编辑/etc/resolv.conf
,但我在那里所做的任何更改都会被覆盖。
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND --
# YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
Run Code Online (Sandbox Code Playgroud)
似乎 127.0.1.1 是dnsmasq
. 该dnsmasq
文件说来编辑/etc/resolv.conf
。我试图把自定义的域名服务器中/etc/resolv.conf.d/base
,但在变化没露面/etc/resolv.conf
后运行sudo resolvconf -u
。
仅供参考,我不想在每个连接的基础上更改 DNS,我想设置默认 DNS 设置以在未另行指定时用于所有连接。
更新:
我自己回答了这个问题:https : //unix.stackexchange.com/a/163506/67024
我认为这是最好的解决方案,因为:
我刚刚在我的 mac (osx10.9.3 + virtualbox) 上安装了 CentOS7 作为虚拟机。运行ifconfig
返回命令未找到。还运行sudo /sbin/ifconfig
返回命令未找到。我是根。的输出
echo $PATH
如下。
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/robbert/.local/bin:/home/robbert/bin
Run Code Online (Sandbox Code Playgroud)
我的路径正常吗?如果没有,我该如何更改它?
另外,我还没有在虚拟机上连接互联网,也许这是一个因素。
我了解如何使用的基本概念/etc/network/interfaces
,但我在网上找到的都是示例,一个又一个示例,我可以从中复制粘贴。我想念的是对语法的解释,对命令含义的解释以及命令所需的顺序。我想了解一下,因为大多数时候复制粘贴是不够的,因为我不是在新机器上工作,所以我不能只覆盖现有配置,因为它会破坏很多东西。man interfaces
不是很有帮助,因为它写得很复杂。
实例的问题我:是什么inet
在iface
行意味着什么(我甚至不能找到它的联机帮助页),是什么manual
在iface
行意味着什么(很多例子使用它,但根据手册页,它需要一个额外的配置文件,然后,这示例不存在),我什么时候使用或需要它们?什么时候不?当我创建一个网桥时,接口到底发生了什么?
以下是我想使用其主机名访问的机器的详细信息:
$ hostname
hostname
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 hostname.company.local hostname
Run Code Online (Sandbox Code Playgroud)
这是默认的 Debian 6 (Squeeze) 安装,所以我还没有摆弄任何东西。
这是我从一台试图访问上述机器的机器(运行 Debian Unstable)获得的信息:
$ ping hostname
ping: unknown host hostname
$ ping hostname.company.local
ping: unknown host hostname.company.local
$ cat /etc/resolv.conf
nameserver 192.168.2.21
nameserver 192.168.2.51
search company.local
Run Code Online (Sandbox Code Playgroud) 是否可以节流(限制)wget
或的下载速度curl
?
下载时是否可以更改节流值?
这是我经常遇到的情况:
我想将 320GB 的数据从源服务器传输到目标服务器(特别是来自 的数据/dev/sda
)。
我在网上搜索了这个问题,并测试了几个命令。出现频率最高的就是这个:
ssh user@192.168.1.100 'dd bs=16M if=/dev/sda | gzip' > backup_sda.gz
Run Code Online (Sandbox Code Playgroud)
这个命令被证明太慢了(它运行了一个小时,只得到了大约 80GB 的数据)。1GB 的测试数据包大约需要 1 分 22 秒,最终在未压缩时速度是原来的两倍。结果也可能因传输的文件小于源系统上的 RAM 量而产生偏差。
此外(这是在 1GB 测试片上测试的),如果我使用gzip
命令和dd
; 与直接通过管道传输相比,在目标上提取的结果文件具有不同的校验和。我仍在试图弄清楚为什么会发生这种情况。
我的机器是一台服务器,所以我想忽略与我的服务器建立的连接(例如,当有人访问我的网站时)。我希望看到只有连接/请求被我的服务器到其他地方做。
我如何只看到那些传出连接?
编辑:我是这些类型的新手。我想要做的只是看看除了我的网络应用程序的数据之外,是否从我的服务器发送了任何内容。例如,如果有人访问我的网站,那么显然我的服务器会将数据发送到客户端的浏览器。但是假设我的网络应用程序框架中的某处也有代码将统计数据发送到我不知道的其他地方。我想看看我的服务器将数据发送到的那些地方,如果有的话。这可能不太可能,但假设您决定使用不是您编写的 php 或 nodejs 框架:它可能会在某处发送某种类型的数据。如果是这样,这就是我希望看到的。