我正在尝试配置OpenSwan,这是一个用C编写的开源IPsec解决方案。
我有一个脚本可以在我的Macbook上创建并上传到S3的Amazon Linux EC2上下载配置文件ipsec.conf
。
当我启动ipsec服务时,会出现段错误。
奇怪的是,如果我用VIM打开配置文件,不做任何更改,只需编写/退出,它就可以工作。这让我相信文件有一些奇怪的字符/格式。
我知道dos2unix
,我在配置文件上运行但没有阻止段错误。
我想知道VIM在写/退出时到底在做什么。拉动后我可以在配置文件上编写该操作的脚本。或其他任何可以帮助我理解正在发生的事情。
答案 0 :(得分:1)
首先,尝试使用vim打开文件,然后退出vim(:q)而不保存文件。如果vim说var fileLineFeed = "";
if ($.os.search(/windows/i) != -1) {
fileLineFeed = "Windows";
} else {
fileLineFeed = "Macintosh";
}
,这意味着这不是vim在写/退出更改文件时所做的事情,但这是vim在打开文件时所做的事情。这是最常见的情况。
Vim根据语言环境解析输入文件,如果根据语言环境无法理解某些字符,vim可能会忘记它们。因此,在保存文件时,这些字符将被删除。
现在,使用vim将文件另存为File modified since last complete write; write or use ! to override.
。
并运行以下命令:
ipsec-ok.conf
这将显示原始文件与使用OpenSwan的文件之间的差异。以ascii和十六进制格式。这样,您将找到使OpenSwan转储核心的不受支持的字符。