1.如何利用ssh端口转发实现邮件转发?
服务器上架设了wiki,需要根据页面修改情况向各个watch其界面的用户提交邮件报告。
而该服务器位于BSO后面,级别是restrictive,即:服务器不能发起任何向外部的连接。解决此问题可以有两种方案,一种是降低BSO级别,带来的问题是需要做大量的patch工作,手续流程比较麻烦。
二是利用一些tip进行。这里使用了ssh的隧道技术 1。
smtp服务 wiki本身有发送邮件的功能,需要调用PHP的mail()函数,此函数是PHP默认支持的,需要OS有sendmail binary文件,并提供smtp功能。 在rhel中,默认安装sendmail作为邮件服务器,可以通过开启sendmail服务即可使用smtp服务(在以前的red hat版本中,smtp是不需要sendmail支持的,不过现在的OS中,必须开启sendmail服务?)。
smtp服务端口是25。可以通过下述方法来进行测试: #mail user_name@domain。
name。com Subject: hello from the server this is the body of the e-mail。
Cc: 其中Subject是标题,之后是邮件正文,用“。”结束正文编写。
最后是抄送地址。 如果smtp功能正常,你可以在你的邮箱里面收到自己的邮件。
2。 ssh隧道 ssh可以建立隧道,进行ip包转发功能。
详细参见man ssh。 其中需要注意的需亚打开OS中ip转发功能(?)。
两个比较重要的隧道建立命令是: ssh -C -f -N -g -R remote_port:local:port user@remotehost 可以将远端服务器一个端口remote_port绑定到本地端口port,其中-C是进行数据压缩,-f是后台操作,只有当提示用户名密码的时候才转向前台。 -N是不执行远端命令,在只是端口转发时这条命令很有用处。
-g 是允许远端主机连接本地转发端口。-R表明是将远端主机端口映射到本地端口。
如果是-L,则是将本地端口映射到远端主机端口。 ssh -L 。
这个命令网上很多,大家可以参考其他地方。
两个命令主要的不同就是:-L参数用于将本地端口转发到远端主机,而-R是将远端主机端口转发到本地。 注意事项: 1。
ssh隧道应该在sendmail服务之前启动,提前监听25端口。这时服务器上sendmail会提示绑定socket失败,不用理会,如果被他绑定了你就不能干活了。
2。 需要指定sendmail的realy host,修改/etc/mail/sendmail。
cf 和 /etc/mail/submit。cf,其中DS字段加入自己的域名。
这样sendmail不会自己乱找relay host。 3。
在/etc/sysconfig/sendmail里面可以指定sendmail为daemon状态,这里应该daemon状态,否则php不会调用sendmail。 由于我们的主机位于BSO之后,只能接受连接,因此我在自己的thinkcentre上建立到服务器上的隧道,将服务器的端口25转发到本地端口25。
远端主机和本地都开启25端口及smtp服务,这样服务器中一旦apache发送邮件,则该邮件通过远端25端口转发到本地25端口,然后由本地 smtp服务进行转发,从此绕开防火墙限制。 NOTEs: 某些情况下,比如其中一端机器出现异常,需要重启双方sendmail服务。
这时会在转接方出现25端口无法绑定的错误。这是由于server方25端口被上一个ssh隧道占用的问题。
2.Linux系统上Iptables怎样实现端口转发?
设我们有一台计算机,有两块网卡,eth0连外网,ip为1。
2。3。
4;eth1连内网,ip为192。168。
0。1。
现在需要把发往地址1。2。
3。4的81端口的ip包转发到ip地址192。
168。0。
2的8180端口,设置如下: 1。 Iptables -t nat -A PREROUTING -d 1。
2。3。
4 -p tcp -m tcp --dport 81 -j DNAT --to-destination192。168。
0。2:8180 2。
Iptables -t nat -A POSTROUTING -s 192。168。
0。0/255。
255。0。
0 -d 192。168。
0。2 -p tcp -m tcp --dport 8180 -j SNAT --to-source 192。
168。0。
1 真实的传输过程如下所示: 假设某客户机的ip地址为6。7。
***,它使用本机的1080端口连接1。 2。
3。4的81端口,发出的ip包源地址为6。
7。***,源端口为1080,目的地址为1。
2。3。
4,目的端口为81。 主机1。
2。3。
4接收到这个包后,根据nat表的第一条规则,将该ip包的目的地址更该为192。168。
0。2,目的端口更该为8180,同时在连接跟踪表中创建一个条目,(可从/proc/net/ip_conntrack文件中看到),然后发送到路由模块,通过查路由表,确定该ip包应发送到eth1接口。
在向eth1接口发送该ip包之前,根据nat表的第二条规则,如果该ip包来自同一子网,则将该ip包的源地址更该为 192。168。
0。1,同时更新该连接跟踪表中的相应条目,然后送到eth1接口发出。
此时连接跟踪表中有一项: 连接进入: src=6。 7。
*** dst=1。2。
3。4 sport=1080 dport=81 连接返回: src=192。
168。0。
2 dst=6。7。
*** sport=8180 dport=1080 是否使用: use=1 而从192。168。
0。 2发回的ip包,源端口为8180,目的地址为6。
7。***,目的端口为1080,主机1。
2。3。
4的TCP/IP栈接收到该ip包后,由核心查找连接跟踪表中的连接返回栏目中是否有同样源和目的地址和端口的匹配项,找到后,根据条目中的记录将ip包的源地址由 192。 168。
0。2更该为1。
2。3。
4, 源端口由8180更该为81,保持目的端口号1080不变。这样服务器的返回包就可以正确的返回发起连接的客户机,通讯就这样开始。
还有一点, 在filter表中还应该允许从eth0连接192。168。
0。2地址的8180端口: Iptables -A INPUT -d 192。
168。0。
2 -p tcp -m tcp --dport 8180 -i eth0 -j ACCEPT。
3.Linux下如何使用OpenSSH配置端口转发
从自己的电脑上访问公司的 CVS 服务器需要利用 SSH 客户端的端口转发功能。
以前在 Windows 上,一般是使用 SecureCRT 作为 SSH 客户端。之后将工作平台迁移到 Ubuntu Linux 之下,却一时没有找到直接使用 OpenSSH 配置端口转发的方法。
只知道利用 PuTTY 的 Tunnel 来完成这样工作,但是多开着一个应用程序却只做端口转发这一件事情,多少觉得有些别扭。 昨日机缘巧合,无意中检索到了一些关于 OpenSSH 配置端口转发的文章。
以下面的例子说明如何配置 OpenSSH 的端口转发功能,所需要修改的配置文件为 ~/。 ssh/config。
Host testsrv Hostname 123。45。
67。89 User cvs_user LocalForward 2401 123。
45。67。
90:2401 其中 Host 后面的是主机的名称,指定这个名称后,就可以使用这个名称代替该主机的 IP 使用,例如: ssh testsrv 即等同于 ssh 123。 45。
67。89 之后的 User 即指定连接主机使用的用户名。
LocalForward 也就是用来配置端口转发功能的。2401 表示本地的端口号,后边的 123。
45。67。
90:2401 是 CVS 服务器的 IP 地址和服务端口(也就是转发的目标主机和端口)。 在这里 LocalForward 表示是使用本地端口进行转发,如果要使用远程端口进行转发的话,则是使用 RemoteForward 参数。
配置完毕,连接主机 testsrv 成功之后,即建立了一个安全的 SSL 加密通道。 需要注意的是,有些文章里面把最后一行的 (1) 2401 123。
45。67。
90:2401 写成了 (2) 2401:123。45。
67。90:2401 这样子是会出错的, (2) 中所示的格式,是在终端中直接用 ssh 配置端口转发参数所使用的格式。
例如 ssh -L 2401:123。45。
67。90:2401 cvs_user@123。
45。67。
89 也等同于在配置文件中所配置的内容。
4.Win10正式版无法连接局域网共享的打印机怎么办
方法如下:
1、进入系统后,点击“开始”菜单,选择“设置”。或者输入快捷键“Win+I”进入设置界面,并点击“设备”。
2、在弹出新窗口中,找到“添加打印机或扫描仪”。点击后会出现“正在搜索打印机或扫描仪”,这个时候稍等一下,可以看到“我需要的打印机不在列表中”。
3、这个时候点击“我需要的打印机不在列表中”它,在弹出的新窗口中,可以看到5个单按钮。选择第二项“按名称选择共享打印机”,并点击“浏览”。不选择第三项,是因为第三项成功率不高。
4、点击后出现新窗口,这里比较特殊,不要直接在窗口点击要找的远程电脑(因为有可能连接失败)。直接输入远程电脑的IP地址并点击“选择”。要记住斜杠的方向不要弄错了。
5、这时出现了远程共享的打印机,选中需要的打印机,并点击“选择”。
6、选择后,如果正常就会自动添加打印机了。但也会遇见这个情况,提示“找不到驱动程序”,这个时候就需要安装打印机驱动。
7、取出买打印机时候赠送的光盘,或者搜索打印机型号下载。根据提示安装。这里有些需要说明的地方。这里推荐使用“确定希望在不连接打印机的情况下安装软件”,不要选择其他选项。
8、安装完成后,在执行一次上面的步骤。这次的就成功的添加上打印机了。在完成的时候,会有一个打印测试页的按钮,不要去点它,直接点击“完成”即可。
5.win10怎么安装局域网打印机共享
所有计算机工作组一样 计算机图标右键-----属性-----计算机名---更改---修改工作组名 为一样,确定 打印主机和客户机系统版本和位数相同 开始--打印机和传真====添加网路打印机 不同系统打印机驱动安装两个方法 驱动有两个方法 1:win10机安装本地打印机 ,端口选择LPT, 安装驱动完毕,重启计算机,添加网络打印机,秒装 2:win10机,先下载驱动解压备用 添加打印机 创建新端口:选local port, 端口名:填写//ip/打印机共享名 添加驱动,指向驱动放的位置。
6.win10怎样添加局域网打印机共享
点击桌面左下角的Windows图标,然后点击“设置”,打开设置窗口后,点击“设备”图标。
接下来点击打印机和扫描仪选项卡中的“添加打印机和扫描仪”选项。如果扫描到需要的打印机,直接添加即可,如果未扫描到,按照下面的步骤进行。
如果未扫描到需要的打印机,点击“我需要的打印机不在列表中”,选择“按名称选择共享打印机”选项,然后点击“浏览”。
从打开的窗口中选择打印机所在的主机,然后选择相应的打印机。添加了打印机之后,点击“下一步”。
点击下一步之后,可能会弹出找不到驱动程序的提示,这时点击“确定”,然后点击“浏览”,从电脑中找到打印机驱动程序中的INF格式文件(如果没有添加的打印机驱动程序,从网上下载该型号的打印机驱动程序),然后点击“确定”按钮。
等待电脑安装驱动程序,安装完成后即可看到打印机已添加的提示,点击“下一步”。
最后一步中,如果需要将该打印机设置为默认打印机,则勾选“设置为默认打印机”选项,然后点击“完成”。打印机添加完成。
转载请注明出处windows之家 » win10设置端口转发