最近在工作里,遇到了几个问题,记录下来

1、首先是转发程序rinetd

下载安装:

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar -zxvf rinetd.tar.gz
make
make install

rinetd使用方法:

pkill rinetd  //关闭进程
rinetd -c /etc/rinetd.conf  //启动转发

查看状态
netstat -antup

配置:

本机IP 端口 转发到的ip 端口

1.2.3.4 11 2.3.4.5 6011
1.2.3.4 12 3.4.5.6 7012
allow *.*.*.*
logfile /var/log/rinetd.log

但是在使用过程中,发现没有日志记录,查看rinetd的源码,发现rinetd在被kill结束的
时候才把日志写到文件里,所以修改日志记录函数,增加int fflush(FILE *stream)函数
void log(int i, int coSe, int result)
{unsigned char *reAddress;int bytesOutput;int bytesInput;/* Bit of borrowing from Apache logging module here,thanks folks */int timz;struct tm *t;char tstr[1024];char sign;if (!log) {return;}t = get_gmtoff(&timz);              //获取当前系统时间sign = (timz < 0 ? '-' : '+');if (timz < 0) {timz = -timz;}strftime(tstr, sizeof(tstr), "%d/%b/%Y:%H:%M:%S ", t);if (i != -1) {reAddress = reAddresses + i * 4;bytesOutput = coBytesOutput[i];bytesInput = coBytesInput[i];} else {reAddress = nullAddress;bytesOutput = 0;bytesInput = 0;}if (logFile) {if (logFormatCommon) {/* Fake a common log format log file in a way thatmost web analyzers can do something interesting with.We lie and say the protocol is HTTP because we don'twant the web analyzer to reject the line. We alsolie and claim success (code 200) because we don'twant the web analyzer to ignore the line as anerror and not analyze the "URL." We put a resultmessage into our "URL" instead. The last fieldis an extra, giving the number of input bytes,after several placeholders meant to fill the positions frequently occupied by user agent, referrer, and server name information. */fprintf(logFile, "%d.%d.%d.%d - - ""[%s %c%.2d%.2d] ""\"GET /rinetd-services/%s/%d/%s/%d/%s HTTP/1.0\" ""200 %d - - - %d\n",reAddress[0],reAddress[1],reAddress[2],reAddress[3],tstr,sign,timz / 60,timz % 60,seFromHosts[coSe], seFromPorts[coSe],seToHosts[coSe], seToPorts[coSe],logMessages[result],bytesOutput,bytesInput);} else {/* Write an rinetd-specific log entry with aless goofy format. */fprintf(logFile, "%s\t%d.%d.%d.%d\t%s\t%d\t%s\t%d\t%d""\t%d\t%s\n",tstr,                                                 //时间和日期  reAddress[0],reAddress[1],reAddress[2],reAddress[3],   //客户端IP(自助终端ip)seFromHosts[coSe],                                     //监听ipseFromPorts[coSe],                                        //监听端口seToHosts[coSe],                                      //转发到的地址seToPorts[coSe],                                        //转发到的端口bytesInput,                                             //客户端接收到的数据大小bytesOutput,                                           //客户端发送的数据大小logMessages[result]);                                   //结果}fflush(logFile);          //增加fflush()函数,清空缓冲区,使得缓冲区的内容写到文件里}
}

然后再编译安装,查看日志,正常。

2、由于rinetd转发程序是内网转外网的,所以服务器需要设置双网卡和路由选择
测试服务器是虚拟机,首先是虚拟机设置双网卡,VMnet0绑定本机的外网网卡(无线网卡),
VMnet2绑定本机的内网网卡(有线网卡)
如图所示:
然后设置虚拟机,添加一个网卡

设置网卡

然后重启服务器,在服务器里添加一个网络,eth0绑定外网网卡,eth1绑定内网网卡

最后一步就是设置路由,其实就是添加设置默认网关

命令:
route add default gw 192.168.0.1

重启网络 service network restart

实现服务器连接内外网

3、弄好了转发程序和网络后,部署测试,A为内网机器,B为转发前置机(rinetd),

C为转发到的外网机器

发现A telnet到B,第一次通,第二次不通的情况,决定抓包

tcpdump -i eth1 -nn 'port 6000' > /root/Desktop/rinetd_log/rinetd_tcpdump_log

> /root/Desktop/rinetd_log/rinetd_tcpdump_log  为存放抓取的包的文件
查看抓取的包的内容发现第二次telnet握手不成功

第二次telnet:
A三次握手到B(连续发了三次第一次握手(都不成功))
16:47:18.224898 IP A > B: S 221780606:221780606(0) win 65535 <mss 1448,nop,wscale 3,nop,nop,timestamp 0 0,nop,nop,sackOK>

16:47:21.151045 IP A > B: S 221780606:221780606(0) win 65535 <mss 1448,nop,wscale 3,nop,nop,timestamp 0 0,nop,nop,sackOK>

16:47:27.167100 IP A > B: S 221780606:221780606(0) win 65535 <mss 1448,nop,wscale 3,nop,nop,timestamp 0 0,nop,nop,sackOK>

上网查了一下,原来是A机器的syn包带有时间戳,经过NAT转换后,如果使用的端口被之前使用过,而且时间戳大于本次syn包中的时间戳。系统将会直接丢弃。造成本次链接无法正常完成TCP/IP的3次握手。

解决办法:

设置sysctl.conf里面tcp_timestamps=0也可以只用命令sysctl -w net.ipv4.tcp_timestamps=0

设置完成后,多次telnet都行了

所有事情完成后,测试环境测试通过。

写得有点乱,有哪里不对的地方,请指出来

转载请注明出处,谢谢。

最近工作里遇到的一些问题,记录下来相关推荐

  1. 【MM系列】SAP里批量设置采购信息记录删除标记

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP里批量设置采购信息记录删除标记 ...

  2. Android实习周记:第三周,工作里重复太多,觉得枯燥,怎么办?

    这周实习工作中我的心情变化较大:烦躁->思考->顿悟 烦躁篇 看来人休息久了身体真的会自己变懒,上周末休息了几天,这周早上工作有两天都差点迟到,还好有小伙伴叫醒.看来放假真的不能太疯玩. ...

  3. 100道题,代码菜鸟教程里都有,只是记录一些输出和自己的理解(又是等成绩焦虑到要死的一天)

    代码菜鸟里都有,只是记录一些输出和自己的理解 判断输入的值在那个范围中 <10w return i*0.1 10w<i<20w return 10w*0.1+(i-10w)*0.07 ...

  4. 工作中的一些错误解决记录

    1) 2018-10-19 CDH OOZIE UI页面打不开:    解决:     把下载好的ext-2.2.zip拷贝到Oozie主机的/var/lib/oozie目录下    运行命令unzi ...

  5. 在Moto Atrix4G手机里安装全功能Ubuntu记录(特附友情广告一则)

    上月二手购入传说中的Moto Atrix4G(ME860)手机--就是那个一秒变笔记本电脑的神器手机.为了让这个笔记本电脑更好用一点,自己折腾了一番,记录一下. 折腾之前还有一些刷机.ROOT.精减. ...

  6. python写入excel怎么跨列居中_怎么才算工作里要求的“熟练使用office办公软件”?...

    我们经常发现招聘工作都会写要求的,其中一条是必须树立掌握office办公软件,这几乎是招聘的默认格式语言来,其实并没有要求到多特殊的东西,比如利用vba和python帮助处理什么的. 顶多只是让你打印 ...

  7. python工作-Python工作五年月薪23K,记录一下我的学习经历建议

    这篇文章是给大家分享一下我自己学习Python的经历,以及目前Python的行情,目的是希望大家能选择好适合自己的方向,抓住Python这个风口,在现在学习Python还不多的情况下,可以很好的进入这 ...

  8. 关于 Node.js 应用里使用 winston 进行日志记录的最佳实践

    Logging with Winston and Node.js 假设您有一个在生产环境中运行的应用程序,每天有数百万用户赚取数千美元.应用程序可能存在错误的原因有多种,作为开发人员,您需要找出原因并 ...

  9. 领导的艺术:工作里怎么样做,才是包容

    领导的艺术无处不在,但是学会包容这样的方式,对于领导来说更难,因为要容下不同的意见,就像眼睛里容下沙子一样.因而常常看到职场上,面红耳赤的,大吵大闹的,鄙视的,拳脚相向的.可以通过下面这个典故来学习一 ...

最新文章

  1. for循环递减_判断语句_循环语句
  2. c语言编写心理测试,求各位大神赐教!我做了一个“心理测试的答题卷”编程,总共有1...
  3. IDM出现输入用户名和密码不能下载解决方法
  4. 领导叫我要好好带新人。。。
  5. Linux设备驱动--块设备(一)之概念和框架(转)
  6. [Swift]LeetCode609. 在系统中查找重复文件 | Find Duplicate File in System
  7. PHP get_class_methods函数用法
  8. 快速比对源代码的工具_推荐7个代码对比工具
  9. 每日一记:2017.12.1
  10. 极致cms精仿小黑猿资源网源码
  11. 怎样使用github?(转)
  12. 第7章 面向对象技术
  13. 红帽6虚拟机安装流程
  14. 英语思维导图大全 非谓语(十二)
  15. C程序设计书本例题 求两整数之间最大值
  16. Spring Boot之Log4j2配置(总结)
  17. 研究员 vs Nervos
  18. .ini文件——配置文件
  19. java excel 导入 关闭,excel关联别的表格数据库-java实现excel表导入,有的字段数据库中没有,需要关......
  20. 阿里云案例分享:唱吧、壹人壹本及DeNA与云产品的结合

热门文章

  1. oracle no privileges on tablespace 'USERS
  2. 【苹果推信iMessage】群发安装软件sent with Invisible Ink“设置”应用
  3. 云场景实践研究第15期:花粉儿APP
  4. GitHub上的各大高校计算机学习资源
  5. unity字体外发光_【Unity学习心得】Sprite外发光的制作
  6. Staubli HCB08.7202/IC/JS3
  7. 小傻蛋的妹妹跟着小甲鱼学习Python的第七节007
  8. [读者]我始终相信努力奋斗的意义
  9. dockerfile拉取私库镜像_Dockerfile From 私有库认证问题
  10. nginx配置区分移动端和PC端,访问不同域名